結果
問題 |
No.1084 積の積
|
ユーザー |
👑 ![]() |
提出日時 | 2025-08-03 06:15:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 176 ms / 2,000 ms |
コード長 | 578 bytes |
コンパイル時間 | 372 ms |
コンパイル使用メモリ | 82,512 KB |
実行使用メモリ | 95,224 KB |
最終ジャッジ日時 | 2025-08-03 06:15:33 |
合計ジャッジ時間 | 4,445 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 27 |
ソースコード
""" """ import sys from sys import stdin import bisect mod = 10**9+7 N = int(input()) A = list(map(int,stdin.readline().split())) if 0 in A: print (0) sys.exit() ans = 1 s = 1 pl = [0] * (N+1) df = [0] * (N+1) l = 0 for r,a in enumerate(A): s *= a while s >= 10**9: s //= A[l] l += 1 pl[l] += 1 pl[r+1] -= 1 df[r+1] -= r-l+1 #print (pl,df) p = 0 q = 0 cnt = [] for i in range(N): p += pl[i] q += p + df[i] cnt.append(q) ans = 1 for i in range(N): ans *= pow(A[i],cnt[i],mod) ans %= mod print (ans)