結果
問題 | No.995 タピオカオイシクナーレ |
ユーザー |
![]() |
提出日時 | 2025-03-20 21:15:36 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 73 ms / 2,000 ms |
コード長 | 941 bytes |
コンパイル時間 | 375 ms |
コンパイル使用メモリ | 82,168 KB |
実行使用メモリ | 85,124 KB |
最終ジャッジ日時 | 2025-03-20 21:16:20 |
合計ジャッジ時間 | 2,802 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
MOD = 10**9 + 7def main():import sysinput = sys.stdin.readdata = input().split()ptr = 0N = int(data[ptr])ptr +=1M = int(data[ptr])ptr +=1K = int(data[ptr])ptr +=1p = int(data[ptr])ptr +=1q = int(data[ptr])ptr +=1b = []for _ in range(N):b.append(int(data[ptr]) % MOD)ptr +=1inv_q = pow(q, MOD-2, MOD)q_minus_2p = (q - 2 * p) % MODa_mod = (q_minus_2p * inv_q) % MODa_mod_pow_k = pow(a_mod, K, MOD)inv_2 = pow(2, MOD-2, MOD)ans = 0for i in range(N):if i < M:term = (a_mod_pow_k * inv_2) % MODterm = (term + inv_2) % MODelse:term = (1 - a_mod_pow_k) % MODterm = (term * inv_2) % MODcontribution = (b[i] * term) % MODans = (ans + contribution) % MODprint(ans)if __name__ == "__main__":main()