結果
問題 |
No.2193 メガの下1桁
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:14:05 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 910 bytes |
コンパイル時間 | 258 ms |
コンパイル使用メモリ | 82,640 KB |
実行使用メモリ | 53,844 KB |
最終ジャッジ日時 | 2025-06-12 19:14:21 |
合計ジャッジ時間 | 2,857 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 WA * 7 |
ソースコード
M = int(input()) D = int(input()) N = int(input()) B = int(input()) if N == 0: result = M % B print('A' if result == 10 else result) exit() D_mod = D % B m0 = M % B f = [0] * B for m in range(B): if m == 0: f[m] = 1 % B else: base = (m + D_mod) % B exponent = m f[m] = pow(base, exponent, B) prev_states = {} steps = [] current = m0 while True: if current in prev_states: start_step = prev_states[current] cycle = steps[start_step:] cycle_length = len(cycle) if N < len(steps): result = steps[N] else: remaining = N - start_step pos = remaining % cycle_length result = cycle[pos] break else: prev_states[current] = len(steps) steps.append(current) current = f[current] if result == 10: print('A') else: print(result)