結果
問題 |
No.1186 長方形の敷き詰め
|
ユーザー |
![]() |
提出日時 | 2025-04-16 15:54:18 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 722 bytes |
コンパイル時間 | 229 ms |
コンパイル使用メモリ | 81,540 KB |
実行使用メモリ | 171,952 KB |
最終ジャッジ日時 | 2025-04-16 15:56:22 |
合計ジャッジ時間 | 2,369 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 WA * 3 |
ソースコード
MOD = 998244353 N, M = map(int, input().split()) if N > M: print(1 % MOD) else: from collections import defaultdict sum_prev = defaultdict(int) sum_prev[0] = 1 # Initialize for i=0 dp0_prev = 1 dp1_prev = 0 for i in range(1, M + 1): current_dp0 = (dp0_prev + dp1_prev) % MOD r = i % N current_dp1 = 0 if i >= N: current_dp1 = sum_prev.get(r, 0) % MOD # Update sum_prev with current_dp0 for the current remainder sum_prev[r] = (sum_prev.get(r, 0) + current_dp0) % MOD # Update dp0_prev and dp1_prev for the next iteration dp0_prev, dp1_prev = current_dp0, current_dp1 print((dp0_prev + dp1_prev) % MOD)