結果
問題 | No.1084 積の積 |
ユーザー |
![]() |
提出日時 | 2020-06-19 22:17:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 166 ms / 2,000 ms |
コード長 | 633 bytes |
コンパイル時間 | 331 ms |
コンパイル使用メモリ | 82,500 KB |
実行使用メモリ | 95,764 KB |
最終ジャッジ日時 | 2024-07-03 14:55:50 |
合計ジャッジ時間 | 3,620 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 27 |
ソースコード
# coding: utf-8 # Your code here! import sys read = sys.stdin.read readline = sys.stdin.readline n,*a = map(int,read().split()) if 0 in a: print(0) exit() MOD = 10**9+7 coeff = [0]*(n+1) const = [0]*(n+1) res = 1 r = 0 for l in range(n): while r < n and res*a[r] < 10**9: res *= a[r] r += 1 res //= a[l] coeff[l] -= 1 coeff[r] += 1 const[l] += r const[r] -= r for i in range(n): coeff[i+1] += coeff[i] const[i+1] += const[i] ans = 1 for idx,(i,j,k) in enumerate(zip(a,coeff,const)): r = j*(idx)+k #print(r) ans *= pow(i,r,MOD) ans %= MOD print(ans)