結果
問題 |
No.3071 Double Speedrun
|
ユーザー |
![]() |
提出日時 | 2025-03-21 21:47:04 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 958 bytes |
コンパイル時間 | 250 ms |
コンパイル使用メモリ | 82,420 KB |
実行使用メモリ | 848,948 KB |
最終ジャッジ日時 | 2025-03-21 21:47:07 |
合計ジャッジ時間 | 3,083 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 1 MLE * 1 -- * 12 |
ソースコード
H, W = map(int, input().split()) S = [input() for i in range(H)] dp = [[[0 for i in range(H)] for j in range(H)] for k in range(H+W-1)] dp[0][0][0] = 1 di, dj = [1, 0], [0, 1] MOD = 998244353 for k in range(0, H+W): for ai in range(H): for bi in range(H): aj = k - ai bj = k - bi #Alice : (ai, aj), Bob : (bi, bj) for x in range(2): for y in range(2): #被る移動は行えない nai, naj = ai + di[x], aj + dj[x] nbi, nbj = bi + di[y], bj + dj[y] if 0 <= nai < H and 0 <= naj < W and 0 <= nbi < H and 0 <= nbj < W and S[nai][naj] == '.' and S[nbi][nbj] == '.' and (k == H+W-3 or nai != nbi or naj != nbj): # print(k, ai, bi, nai, nbi) dp[k+1][nai][nbi] += dp[k][ai][bi] dp[k+1][nai][nbi] %= MOD # for k in range(0, H+W-1): # for ai in range(H): # for bi in range(H): # if dp[k][ai][bi] != 0: print(k, ai, bi, dp[k][ai][bi]) print(dp[-1][-1][-1] * pow(2, -1, MOD) % MOD)