結果
問題 |
No.1492 01文字列と転倒
|
ユーザー |
👑 |
提出日時 | 2022-11-02 16:00:53 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,562 ms / 4,000 ms |
コード長 | 541 bytes |
コンパイル時間 | 268 ms |
コンパイル使用メモリ | 82,360 KB |
実行使用メモリ | 254,032 KB |
最終ジャッジ日時 | 2024-07-17 05:11:20 |
合計ジャッジ時間 | 14,661 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
n, MOD = map(int, input().split()) def f(o, z, t): return (o * (n + 1) + z) * (n * n + 1) + t dp = {0:1} for _ in range(2 * n): nex = {} for k, v in dp.items(): t = k % (n * n + 1) k //= (n * n + 1) z = k % (n + 1) o = k // (n + 1) if z < n: nex[f(o, z + 1, t + o)] = (nex.get(f(o, z + 1, t + o), 0) + v) % MOD if o < z: nex[f(o + 1, z, t)] = (nex.get(f(o + 1, z, t), 0) + v) % MOD dp = nex for i in range(n * n + 1): print(dp.get(f(n, n, i), 0))