結果
問題 | No.186 中華風 (Easy) |
ユーザー |
![]() |
提出日時 | 2020-04-26 20:29:25 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 51 ms / 2,000 ms |
コード長 | 881 bytes |
コンパイル時間 | 152 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 55,296 KB |
最終ジャッジ日時 | 2024-07-19 18:39:02 |
合計ジャッジ時間 | 1,969 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
def extgcd(a, b): if b == 0: return 1, 0, a q, r = divmod(a, b) x, y, d = extgcd(b, r) s, t = y, x-q*y return s, t, d def mod(a, m): return (a%m + m)%m; def CRT_list(b, m): #b: list #m: lsit r, M = 0, 1 for i in range(len(b)): p, q, d = extgcd(M, m[i]) if (b[i]-r)%d != 0: return 0, -1 temp = (b[i]-r)//d * p % (m[i]//d) r += M * temp M *= m[i]//d return mod(r, M), M import math from functools import reduce def lcm_base(x, y): return (x * y) // math.gcd(x, y) def lcm_list(numbers): return reduce(lcm_base, numbers, 1) X = [] Y = [] for i in range(3): x, y = map(int, input().split()) X.append(x) Y.append(y) if X[0] == 0 and X[1] == 0 and X[2] == 0: print(lcm_list(Y)) exit() r, M = CRT_list(X, Y) if M == -1: print(-1) else: print(r)