結果
問題 |
No.129 お年玉(2)
|
ユーザー |
|
提出日時 | 2022-07-04 14:02:23 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 69 ms / 5,000 ms |
コード長 | 727 bytes |
コンパイル時間 | 330 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 67,200 KB |
最終ジャッジ日時 | 2024-12-14 03:14:26 |
合計ジャッジ時間 | 4,594 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 46 |
ソースコード
MOD = 10 ** 9 n = int(input()) m = int(input()) n //= 1000 n %= m ret = 1 inv = 1 two = 0 five = 0 for i in range(m, m - n, -1): while i % 2 == 0: i //= 2 two += 1 while i % 5 == 0: i //= 5 five += 1 ret *= i ret %= MOD for i in range(1, n + 1): while i % 2 == 0: i //= 2 two -= 1 while i % 5 == 0: i //= 5 five -= 1 inv *= i inv %= MOD def modinv(a, MOD): b = MOD u = 1 v = 0 while b: t = a // b a -= t * b u -= t * v a, b = b, a u, v = v, u u %= MOD return u ret *= modinv(inv, MOD) ret %= MOD ret *= pow(2, two, MOD) * pow(5, five, MOD) ret %= MOD print(ret)