結果
問題 |
No.186 中華風 (Easy)
|
ユーザー |
![]() |
提出日時 | 2024-04-20 10:22:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 35 ms / 2,000 ms |
コード長 | 812 bytes |
コンパイル時間 | 96 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-10-12 05:53:02 |
合計ジャッジ時間 | 1,903 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
def gcd(a, b): if b == 0: return a else: return gcd(b, a%b) def extgcd(a, b): #拡張ユークリッド互除法 #ax + by = gcd(a, b)となる(x, y)を求めます if b == 0: return [1, 0] q = a//b r = a%b s, t = extgcd(b, r) y = s - q*t return [t, y] def CRT(rs, ms): R = 0 M = 1 for r, m in zip(rs, ms): g = gcd(M, m) # assert r%g == R%g if r%g != R%g: return [-1, -1] s, _ = extgcd(M, m) lcm = m*M // g R += (r - R)//g * M * s R %= lcm M = lcm return [R, M] x = [] y = [] for i in range(3): X, Y = map(int, input().split()) x.append(X) y.append(Y) ans = CRT(x, y) if ans[0] == 0: print(ans[1]) else: print(ans[0])