問題一覧 >
通常問題
No.856 増える演算
問題文最終更新日: 2022-10-09 14:28:06
問題文
妖精の31536000は、足し算や掛け算、指数のような値が増えるものが好きです。
そこで、数字をN個書き、これらを次の規則に従って計算することにしました。
まず全てのi<jとなるi及びjを選び、(Ai+Aj)⋅AiAjを掛け合わせます。
ですがこの値はちょっと大きかったので、(Ai+Aj)⋅AiAjのうち最も小さいものを選んで割ったところ、値がMになりました。
さて、このMはいくつだったでしょうか?
ただ、答えは非常に大きくなる可能性があるので、Mの代わりにMを1000000007で割ったあまりを出力してください。
入力
N
A1 ⋯ AN
2≤N≤105
1≤Ai≤105
出力
i<jmin((Ai+Aj)⋅AiAj)∏i=1N∏j=i+1N(Ai+Aj)⋅AiAjmod1000000007を求めよ。
サンプル
サンプル1
入力
4
1 2 3 4
出力
43545600
(1+2)⋅12⋅(1+3)⋅13⋅(1+4)⋅14⋅(2+3)⋅23⋅(2+4)⋅24⋅(3+4)⋅34=3⋅4⋅5⋅40⋅96⋅567=130636800です。
また、割った値は3なので、答えは130636800/3=43545600です。
サンプル2
入力
2
1000 1000
出力
1
(1000+1000)⋅10001000(1000+1000)⋅10001000=1です。
サンプル3
入力
3
1 5 3
出力
6000
(1+3)⋅13(1+5)⋅15⋅(1+3)⋅13⋅(5+3)⋅53=6000です。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。