結果

問題 No.3213 depth max K
ユーザー LyricalMaestro
提出日時 2025-07-27 02:51:01
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 817 ms / 2,000 ms
コード長 720 bytes
コンパイル時間 227 ms
コンパイル使用メモリ 82,652 KB
実行使用メモリ 77,556 KB
最終ジャッジ日時 2025-07-27 02:51:11
合計ジャッジ時間 9,513 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #

# https://yukicoder.me/problems/no/3213s

MOD = 998244353

def main():
    N, K = map(int, input().split())


    # 深さがK以下のもの
    def calc(N, K):
        dp = [0] * (K + 1)
        dp[0] = 1

        for _ in range(2 * N):
            new_dp = [0] * (K + 1)
            for k in range(K + 1):
                if k - 1 >= 0:
                    new_dp[k - 1] += dp[k]
                    new_dp[k - 1] %= MOD
                if k + 1 <= K:
                    new_dp[k + 1] += dp[k]
                    new_dp[k + 1] %= MOD
            dp = new_dp
        
        return dp[0]
    
    d1 = calc(N, K)
    d2 = calc(N, K -1)

    print((d1 - d2) % MOD)

    








if __name__ == "__main__":
    main()
0