結果
問題 |
No.2558 中国剰余定理
|
ユーザー |
👑 |
提出日時 | 2023-09-19 21:43:34 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 44 ms / 2,000 ms |
コード長 | 636 bytes |
コンパイル時間 | 167 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 52,224 KB |
最終ジャッジ日時 | 2024-07-05 21:44:55 |
合計ジャッジ時間 | 2,394 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
# 拡張ユークリッドの互除法を用いた解法 from math import gcd # aとbの最大公約数gcdと、a*x - b*y = 1 の特殊解x, y を返す def extended_gcd(a, b): if a % b == 0: gcd = b x = 1 y = 1 - (a // b) else: gcd, pre_x, pre_y = extended_gcd(b, a % b) x = pre_y y = pre_x - (a // b) * pre_y return gcd, x, y A, B, a, b = map(int, input().split()) gcd, x, y = extended_gcd(A, B) # 入力値チェック assert gcd == 1 assert 1 <= A <= 3000 assert 1 <= B <= 3000 assert 0 <= a < A assert 0 <= b < B ans = ((A * x) * (b - a) + a) % (A * B) print(ans)