問題一覧 > 通常問題

No.1084 積の積

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 184
作問者 : tyawanmusi / テスター : kichi2004_
22 ProblemId : 3681 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-06-19 21:48:01

問題文

要素数 N の非負整数列 A があります。 Ai(1iN) 番目の要素は Ai です。
関数 f(l,r)(1lrN) を次のように定義します。

  • f(l,r)=Al×Al+1××Ar
掛け算がマイブームの茶碗蒸しくんと、掛け算をキメたい茶碗蒸しANOTHERくんがいます。
茶碗蒸しくんは、答えが 109 以上になると必ず計算ミスをしてしまいます。
茶碗蒸しANOTHERくんは一切計算ミスをしません。

茶碗蒸しくんは N(N+1)/2 通りある (l,r)(1lrN) すべてについて f(l,r) を計算し、メモ帳に書き残しました。
茶碗蒸しANOTHERくんは、茶碗蒸しくんが求めた N(N+1)/2 個の数から計算結果が間違っている数を消しました。
そして、茶碗蒸しANOTHERくんは残った数を全て掛け合わせ、その答えを茶碗蒸し神に奉納しました。
茶碗蒸しANOTHERくんが奉納した数を求めてください。
ただし、答えはとても大きな数になることがあるので、答えを 109+7 で割ったあまりを出力してください。

21:48編集:問題文中の「数字」→「数」に統一

制約

  • N,Aiは整数
  • 1N105
  • 0Ai<109

入力

N
A1 A2  An

1 行目には N が入力されます。
2 行目には A が空白区切りで入力されます。

出力

答えを整数で出力してください。
最後に改行してください。

サンプル

サンプル1
入力
3
2 3 5
出力
81000

茶碗蒸しくんは、 (2,3,5,6,15,30) をメモ帳に書きました。 茶碗蒸しANOTHERくんは、これらの総乗である 81000 を求めました。

サンプル2
入力
3
100000 100000 100000
出力
993000007

茶碗蒸しくんは (105,105,105,1010,1010,1015) をメモ帳に書きたかったですが、 (1010,1010,1015) の部分で計算ミスをしてしまいました。
茶碗蒸しANOTHERくんはその部分を消すので、 105×105×105 を計算しました。
答えを 109+7 で割ったあまりを出力してください。

サンプル3
入力
10
1 2 3 4 5 6 7 8 9 10
出力
29831907

答えを 109+7 で割ったあまりを出力してください。

サンプル4
入力
5
31415 92653 1333 58979 32384
出力
282377886

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。