結果
問題 |
No.2193 メガの下1桁
|
ユーザー |
![]() |
提出日時 | 2025-04-16 00:49:07 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,126 bytes |
コンパイル時間 | 473 ms |
コンパイル使用メモリ | 82,536 KB |
実行使用メモリ | 54,360 KB |
最終ジャッジ日時 | 2025-04-16 00:51:49 |
合計ジャッジ時間 | 2,749 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 WA * 7 |
ソースコード
M = int(input()) D = int(input()) N = int(input()) B = int(input()) def compute_mod(M, D, N, B): if N == 0: return M % B current_mod = M % B seen = {current_mod: 0} steps = [current_mod] remaining = N step = 0 while remaining > 0: a = (current_mod + D) % B exponent = current_mod if a == 0 and exponent == 0: next_m = 1 % B else: next_m = pow(a, exponent, B) current_mod = next_m step += 1 remaining -= 1 if current_mod in seen: start = seen[current_mod] loop_length = step - start if loop_length == 0: current_mod = steps[start] break total_loops = remaining // loop_length remainder_steps = remaining % loop_length final_pos = start + remainder_steps current_mod = steps[final_pos] break else: seen[current_mod] = step steps.append(current_mod) return current_mod result = compute_mod(M, D, N, B) print(result if result < 10 else 'A')