結果
問題 | No.3179 3 time mod |
ユーザー |
|
提出日時 | 2025-06-13 22:17:16 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 38 ms / 2,000 ms |
コード長 | 931 bytes |
コンパイル時間 | 276 ms |
コンパイル使用メモリ | 82,140 KB |
実行使用メモリ | 53,908 KB |
最終ジャッジ日時 | 2025-06-14 01:42:45 |
合計ジャッジ時間 | 2,940 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 42 |
ソースコード
def extended_gcd(a, b): if b == 0: return (a, 1, 0) g, x1, y1 = extended_gcd(b, a % b) x, y = y1, x1 - (a // b) * y1 return (g, x, y) def modinv(a, m): g, x, y = extended_gcd(a, m) if g != 1: raise Exception("Inverse does not exist") return x % m def crt_three_mods(a1, m1, a2, m2, a3, m3): M1M2 = m1 * m2 inv_m1 = modinv(m1, m2) inv_m2 = modinv(m2, m1) x12 = (a1 * m2 * inv_m2 + a2 * m1 * inv_m1) % M1M2 inv_M12 = modinv(M1M2, m3) inv_m3 = modinv(m3, M1M2) M1M2M3 = M1M2 * m3 x = (x12 * m3 * inv_m3 + a3 * M1M2 * inv_M12) % M1M2M3 return x def count_crt_solutions(N, P, Q, R, A, B, C): M = P * Q * R x0 = crt_three_mods(A, P, B, Q, C, R) if x0 > N: return 0 return (N - x0) // M + 1 N = int(input()) P, Q, R = map(int, input().split()) A, B, C = map(int, input().split()) print(count_crt_solutions(N, P, Q, R, A, B, C))