結果
| 問題 |
No.186 中華風 (Easy)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-11-11 13:54:41 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 40 ms / 2,000 ms |
| コード長 | 675 bytes |
| コンパイル時間 | 485 ms |
| コンパイル使用メモリ | 82,080 KB |
| 実行使用メモリ | 54,188 KB |
| 最終ジャッジ日時 | 2024-09-13 09:42:26 |
| 合計ジャッジ時間 | 2,137 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
ソースコード
import sys
input = sys.stdin.readline
from math import gcd
def lcm(x, y):
return x*y//gcd(x, y)
def ext_gcd(a, b):
if b==0:
return 1, 0
s, t = ext_gcd(b, a%b)
return t, s-a//b*t
def crt(rs, ms):
r, m = 0, 1
for ri, mi in zip(rs, ms):
p, q = ext_gcd(m, mi)
g = gcd(m, mi)
if (ri-r)%g!=0:
return -1
r += m*(ri-r)//g*p
m *= mi//g
r %= m
return r
rs, ms = [], []
for _ in range(3):
r, m = map(int, input().split())
rs.append(r)
ms.append(m)
ans = crt(rs, ms)
if ans==0:
print(lcm(lcm(ms[0], ms[1]), ms[2]))
else:
print(ans)