結果
問題 |
No.2119 一般化百五減算
|
ユーザー |
![]() |
提出日時 | 2022-10-11 18:37:09 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 963 bytes |
コンパイル時間 | 316 ms |
コンパイル使用メモリ | 82,844 KB |
実行使用メモリ | 76,752 KB |
最終ジャッジ日時 | 2024-06-25 15:38:06 |
合計ジャッジ時間 | 7,965 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 WA * 4 TLE * 2 -- * 2 |
ソースコード
def safe_mod(x, m): x %= m if x < 0: x += m return x def inv_gcd(a, b): a = safe_mod(a, b) if a == 0: return b, 0 s, t = b, a m0, m1 = 0, 1 while t > 0: u = s // t s -= t * u m0 -= m1 * u s, t = t, s m0, m1 = m1, m0 if m0 < 0: m0 += b // s return s, m0 r, m = 0, 1 def crt(rr, mm): global r, m r1, m1 = safe_mod(rr, mm), mm if m < m1: r, r1 = r1, r m, m1 = m1, m if m % m1 == 0: if r % m1 != r1: r = m = 0 return g, im = inv_gcd(m, m1) u1 = m1 // g if (r1 - r) % g != 0: r = m = 0 return x = (r1 - r) // g % u1 * im % u1 r += x * m m *= u1 if r < 0: r += m return max = int(input()) for _ in range(int(input())): b, c = map(int, input().split()) crt(c, b) if m == 0 or r > m: print("NaN") exit() print(r)