問題一覧 > 通常問題

No.856 増える演算

レベル : / 実行時間制限 : 1ケース 3.153秒 / メモリ制限 : 315 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 30
作問者 : CuriousFairy315 / テスター : kakira9618
2 ProblemId : 2838 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-10-09 14:28:06

問題文

妖精の31536000は、足し算や掛け算、指数のような値が増えるものが好きです。
そこで、数字をNN個書き、これらを次の規則に従って計算することにしました。
まず全てのi<ji < jとなるii及びjjを選び、(Ai+Aj)AiAj(A_i + A_j) \cdot A_i^{A_j}を掛け合わせます。
ですがこの値はちょっと大きかったので、(Ai+Aj)AiAj(A_i + A_j) \cdot A_i^{A_j}のうち最も小さいものを選んで割ったところ、値がMMになりました。
さて、このMMはいくつだったでしょうか?
ただ、答えは非常に大きくなる可能性があるので、MMの代わりにMM10000000071000000007で割ったあまりを出力してください。

入力

NN
A1A_1 \cdots ANA_N

2N1052 \leq N \leq 10^5
1Ai1051 \leq A_i \leq 10^5

出力

i=1Nj=i+1N(Ai+Aj)AiAjmini<j((Ai+Aj)AiAj)mod  1000000007\displaystyle \frac{\prod_{i=1}^{N} \prod_{j=i+1}^{N} (A_i + A_j) \cdot A_i^{A_j}}{\underset{i < j}{\min}((A_i + A_j) \cdot A_i^{A_j})} \mod 1000000007を求めよ。

サンプル

サンプル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=3454096567=130636800(1 + 2) \cdot 1^2 \cdot (1 + 3) \cdot 1^3 \cdot (1 + 4) \cdot 1^4 \cdot (2 + 3) \cdot 2^3 \cdot (2 + 4) \cdot 2^4 \cdot (3 + 4) \cdot 3^4 = 3 \cdot 4 \cdot 5 \cdot 40 \cdot 96 \cdot 567 = 130636800です。
また、割った値は33なので、答えは130636800/3=43545600130636800/ 3 = 43545600です。

サンプル2
入力
2
1000 1000
出力
1

(1000+1000)10001000(1000+1000)10001000=1\frac{(1000 + 1000) \cdot 1000^{1000}}{(1000 + 1000) \cdot 1000^{1000}} = 1です。

サンプル3
入力
3
1 5 3
出力
6000

(1+5)15(1+3)13(5+3)53(1+3)13=6000\frac{(1+5) \cdot 1^5 \cdot (1+3) \cdot 1^3 \cdot (5+3) \cdot 5^3}{(1+3) \cdot 1^3}=6000です。

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