結果
問題 | No.2119 一般化百五減算 |
ユーザー |
![]() |
提出日時 | 2025-03-20 21:16:55 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,480 bytes |
コンパイル時間 | 149 ms |
コンパイル使用メモリ | 82,708 KB |
実行使用メモリ | 106,196 KB |
最終ジャッジ日時 | 2025-03-20 21:17:46 |
合計ジャッジ時間 | 4,590 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 TLE * 1 -- * 4 |
ソースコード
import mathdef extended_gcd(a, b):old_r, r = a, bold_s, s = 1, 0old_t, t = 0, 1while r != 0:quotient = old_r // rold_r, r = r, old_r - quotient * rold_s, s = s, old_s - quotient * sold_t, t = t, old_t - quotient * treturn old_r, old_s, old_tdef combine(current_rem, current_mod, new_c, new_b):g = math.gcd(current_mod, new_b)if (current_rem - new_c) % g != 0:return Nonelcm = current_mod // g * new_ba = (new_c - current_rem) // gm_div_g = current_mod // gb_div_g = new_b // gg_inv, inv, _ = extended_gcd(m_div_g, b_div_g)inv %= b_div_gk = (a * inv) % b_div_gnew_rem = current_rem + k * current_modnew_rem %= lcmreturn (new_rem, lcm)def main():import sysinput = sys.stdin.read().split()ptr = 0N = int(input[ptr])ptr += 1M = int(input[ptr])ptr += 1conditions = []for _ in range(M):b = int(input[ptr])c = int(input[ptr + 1])ptr += 2conditions.append((b, c))current_rem = 0current_mod = 1for b, c in conditions:new_b = bnew_c = c % new_bres = combine(current_rem, current_mod, new_c, new_b)if res is None:print("NaN")returncurrent_rem, current_mod = resif current_rem <= N:print(current_rem)else:print("NaN")if __name__ == '__main__':main()