結果

問題 No.1388 Less than K
ユーザー Mitarushi
提出日時 2021-01-15 17:17:11
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 1,060 bytes
コンパイル時間 146 ms
コンパイル使用メモリ 81,940 KB
実行使用メモリ 848,296 KB
最終ジャッジ日時 2024-11-26 08:20:10
合計ジャッジ時間 100,517 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 MLE * 1
other AC * 2 MLE * 72
権限があれば一括ダウンロードができます

ソースコード

diff #

h, w, kk = map(int, input().split())

dp = [[[0] * h for _ in range(w)] for _ in range(h)]
h -= 1
w -= 1
mod = 998244353
x = [-1, 0]
y = [0, -1]

dp[0][0][0] = 1
for i in range(1, h+w+1):
    for j in range(i+1):
        hh1 = j
        ww1 = i - j
        if not (0 <= hh1 <= h and 0 <= ww1 <= w):
            continue
        for k in range(i+1):
            hh2 = k
            ww2 = i - k
            if not (0 <= hh2 <= h and 0 <= ww2 <= w):
                continue

            if not abs(hh1-hh2) + abs(ww1-ww2) <= kk:
                continue

            for a in range(2):
                for b in range(2):
                    if a == 0 and hh1 == 0:
                        continue
                    if a == 1 and ww1 == 0:
                        continue
                    if b == 0 and hh2 == 0:
                        continue
                    if b == 1 and ww2 == 0:
                        continue
                    dp[hh1][ww1][hh2] += dp[hh1+x[a]][ww1+y[a]][hh2+x[b]]
            dp[hh1][ww1][hh2] %= mod
print(dp[-1][-1][-1])
0