C - 整数占い (Uranai Integer) 解説 /

実行時間制限: 2 sec / メモリ制限: 1024 MB

配点 : 100

問題文

MMNMMさんは,夏祭りの屋台で相性占いをすることにしました.
相性占いはおみくじの箱とその中に入っている整数が書かれた札で行います.
はじめに,箱の中には N 枚の札が入っており, i 番目( 1 \leq i \leq N )の札には整数 a_i が書かれています.

占いに参加する2人は,順番を決め,最初の人が箱の中にある札からランダムに(箱の中のどの1枚の札を選ぶことも同様に確からしくなるように)一枚札を選び,その札を戻さないままもう一人も同様に一枚札を選びます.
2人の相性は,「似(2)合い(1)の夫(2)婦(2)」にちなんで,2人の選んだ整数を X,Y とすると 2+XY+2X+2Y ですが,占いの神様は大きな数が扱えないので,実際の相性は 2+XY+2X+2Y の値を 10^9+7 で割ったあまりになります.
相性を視たあとは,選んだ札を戻さず,2人の相性 (を 10^9+7 で割ったあまり) が書かれた札を戻します.

相性占いの N-1 組目の参加者の相性 (を 10^9+7 で割ったあまり) の期待値を求めてください.

制約

すべてのテストケースは以下の制約を満たします.

  • 2 \leq N \leq 10^6
  • 0 \leq a_i < 10^9+6 (i = 1, 2, ..., N)

入力

入力は以下の形式で標準入力から与えられる.

N
a_1 a_2 ... a_N
  • 1行目には,整数 N が書かれている.これは,はじめに箱の中には札が N 枚入っていることを表している.
  • 2行目には,整数 a_1, a_2, ..., a_N がこの順に空白を区切りとして書かれている.これは,はじめに箱の中に入っている札のうち i 枚目 (1 \leq i \leq N)a_i であることを表している.

出力

標準出力に,に N-1 組目の参加者の相性 (を 10^9+7 で割ったあまり) の期待値を表す整数を1行で出力しなさい.絶対誤差が 10^{-5} 以下のとき,正答と判定される.


入力例 1

3
1 2 3

出力例 1

58.000000

例えば,1組目が (1, 3) の札を取って, 2 + 1 \times 3 + 2 \times 1 + 2 \times 3 = 13 の札を入れ,2組目が (2, 13) の札を取ると,2組目の相性は 2 + 2 \times 13 + 2 \times 2 + 2 \times 13 = 58 になります.