結果
問題 | No.1964 sum = length |
ユーザー |
![]() |
提出日時 | 2022-06-03 23:14:45 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,724 ms / 2,000 ms |
コード長 | 1,156 bytes |
コンパイル時間 | 171 ms |
コンパイル使用メモリ | 82,232 KB |
実行使用メモリ | 215,684 KB |
最終ジャッジ日時 | 2024-09-21 03:22:59 |
合計ジャッジ時間 | 37,755 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
import sysimport pypyjitimport itertoolsimport heapqimport mathfrom collections import deque, defaultdictimport bisectinput = sys.stdin.readline# sys.setrecursionlimit(10 ** 6)# pypyjit.set_param('max_unroll_recursion=-1')N = int(input())mod = 998_244_353S = [[0 for _ in range(610)] for _ in range(310)]for k in range(610):S[0][k] = 1for i in range(1, N + 1):dp = [[0 for _ in range(610)] for _ in range(310)]nxt = [[0 for _ in range(610)] for _ in range(310)]for j in range(1, 300 + 1):for k in range(1, 500 + 1):if j >= 1 and k >= 1:dp[j][k] += S[j - 1][k - 1] - (S[j - 1][k - 10] if k >= 10 else 0)if j >= 2 and k >= 10:dp[j][k] += S[j - 2][k - 10] - (S[j - 2][k - 100] if k >= 100 else 0)if j >= 3 and k >= 100:dp[j][k] += S[j - 3][k - 100]dp[j][k] %= modnxt[j][k] += nxt[j][k - 1] + dp[j][k]nxt[j][k] %= modS = nxtans = 0for j in range(300 + 1):for k in range(600 + 1):if j + N - 1 == k:ans += dp[j][k]ans %= modprint(ans)