結果
問題 | No.2119 一般化百五減算 |
ユーザー |
![]() |
提出日時 | 2022-11-04 21:54:21 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,117 bytes |
コンパイル時間 | 170 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 87,808 KB |
最終ジャッジ日時 | 2024-07-18 19:39:27 |
合計ジャッジ時間 | 7,402 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 TLE * 2 -- * 2 |
ソースコード
N=int(input())M=int(input())X=[]Y=[]for i in range(M):b,c=map(int,input().split())X.append(c%b)Y.append(b)def inv_gcd(a, b):a %= bif a == 0: return b, 0s = bt = am0 = 0m1 = 1while t:u = s // ts -= t * um0 -= m1 * us, t = t, sm0, m1 = m1, m0if m0 < 0: m0 += b // sreturn s, m0def inv_mod(x, m):assert 1 <= mg, im = inv_gcd(x, m)assert g == 1return imdef crt(r, m):assert len(r) == len(m)n = len(r)r0 = 0m0 = 1for i in range(n):assert 1 <= m[i]r1 = r[i] % m[i]m1 = m[i]if m0 < m1:r0, r1 = r1, r0m0, m1 = m1, m0if m0 % m1 == 0:if r0 % m1 != r1: return 0, 0continueg, im = inv_gcd(m0, m1)u1 = m1 // gif (r1 - r0) % g: return 0, 0x = (r1 - r0) // g * im % u1r0 += x * m0m0 *= u1if (r0 < 0): r0 += m0if r0>N:return 0,0return r0, m0ANS=crt(X,Y)if ANS[1]==0:print('NaN')else:print(ANS[0])