結果
| 問題 |
No.1844 Divisors Sum Sum
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-20 21:17:29 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 426 ms / 3,000 ms |
| コード長 | 1,123 bytes |
| コンパイル時間 | 360 ms |
| コンパイル使用メモリ | 82,356 KB |
| 実行使用メモリ | 133,936 KB |
| 最終ジャッジ日時 | 2025-03-20 21:18:38 |
| 合計ジャッジ時間 | 8,471 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 38 |
ソースコード
MOD = 10**9 + 7
def main():
import sys
input = sys.stdin.read
data = input().split()
L = int(data[0])
idx = 1
inv2 = pow(2, MOD - 2, MOD)
total = 1
for _ in range(L):
p = int(data[idx])
e = int(data[idx + 1])
idx += 2
current_p = p % MOD
if current_p == 1:
a = (e + 1) % MOD
b = (e + 2) % MOD
s = (a * b) % MOD
s = (s * inv2) % MOD
total = (total * s) % MOD
else:
exponent = e + 2
a = pow(current_p, exponent, MOD)
term_p = (a - current_p) % MOD
e_plus1 = (e + 1) % MOD
p_minus1 = (current_p - 1) % MOD
term_e = (e_plus1 * p_minus1) % MOD
numerator = (term_p - term_e) % MOD
denominator = (p_minus1 * p_minus1) % MOD
denominator_inv = pow(denominator, MOD - 2, MOD)
x = (numerator * denominator_inv) % MOD
total = (total * x) % MOD
print(total)
if __name__ == '__main__':
main()
lam6er