結果
問題 |
No.186 中華風 (Easy)
|
ユーザー |
|
提出日時 | 2015-09-18 19:53:24 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,006 bytes |
コンパイル時間 | 83 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 10,752 KB |
最終ジャッジ日時 | 2024-07-19 06:55:26 |
合計ジャッジ時間 | 1,552 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 WA * 2 |
ソースコード
def read_data(): x1, y1 = map(int, input().split()) x2, y2 = map(int, input().split()) x3, y3 = map(int, input().split()) return x1, y1, x2, y2, x3, y3 def gcd_ext(m: int, n: int) -> (int, int, int): '''拡張ユークリッドの互除法 mx + ny = gcd(x, y) となる、gcd(x, y), x, y を返す。 ''' x, y, u, v = 1, 0, 0, 1 while n: k, m = divmod(m, n) m, n = n, m x, y, u, v = u, v, x - u * k, y - v * k return m, x, y def solve2(x1, y1, x2, y2): gcd, a, b = gcd_ext(y1, y2) lcm = y1 * y2 // gcd k, r = divmod(x1 - x2, gcd) if r != 0: return -1, lcm z = (x1 - k * a * y1) % lcm # z = (x2 + k * b * y2) % lcm return z, lcm def solve3(x1, y1, x2, y2, x3, y3): x12, y12 = solve2(x1, y1, x2, y2) if x12 == -1: return -1 # z % y12 = x12 and z % y3 = x3 z, lcm = solve2(x12, y12, x3, y3) return z x1, y1, x2, y2, x3, y3 = read_data() print(solve3(x1, y1, x2, y2, x3, y3))