結果
問題 | No.2783 4-33 Easy |
ユーザー | anonymously |
提出日時 | 2024-06-14 22:59:57 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 883 ms / 2,000 ms |
コード長 | 924 bytes |
コンパイル時間 | 289 ms |
コンパイル使用メモリ | 82,792 KB |
実行使用メモリ | 86,872 KB |
最終ジャッジ日時 | 2024-06-14 23:00:21 |
合計ジャッジ時間 | 22,632 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 89 ms
76,984 KB |
testcase_01 | AC | 112 ms
77,396 KB |
testcase_02 | AC | 110 ms
77,760 KB |
testcase_03 | AC | 104 ms
77,004 KB |
testcase_04 | AC | 682 ms
84,316 KB |
testcase_05 | AC | 791 ms
85,868 KB |
testcase_06 | AC | 722 ms
85,816 KB |
testcase_07 | AC | 703 ms
85,696 KB |
testcase_08 | AC | 744 ms
85,800 KB |
testcase_09 | AC | 876 ms
86,348 KB |
testcase_10 | AC | 855 ms
86,228 KB |
testcase_11 | AC | 863 ms
86,036 KB |
testcase_12 | AC | 882 ms
86,076 KB |
testcase_13 | AC | 848 ms
86,324 KB |
testcase_14 | AC | 852 ms
86,068 KB |
testcase_15 | AC | 870 ms
86,180 KB |
testcase_16 | AC | 842 ms
86,052 KB |
testcase_17 | AC | 869 ms
86,396 KB |
testcase_18 | AC | 846 ms
86,384 KB |
testcase_19 | AC | 844 ms
86,084 KB |
testcase_20 | AC | 861 ms
86,872 KB |
testcase_21 | AC | 841 ms
85,940 KB |
testcase_22 | AC | 841 ms
86,316 KB |
testcase_23 | AC | 883 ms
86,468 KB |
testcase_24 | AC | 855 ms
86,216 KB |
testcase_25 | AC | 846 ms
86,320 KB |
testcase_26 | AC | 868 ms
86,676 KB |
testcase_27 | AC | 871 ms
86,640 KB |
testcase_28 | AC | 843 ms
86,392 KB |
ソースコード
from copy import deepcopy MOD = 998244353 N = int(input()) A = list(map(int, input().split())) B = input().split() X = [] Y = [] for i in range(N): if B[i].isdigit(): Y.append((A[i], int(B[i]))) elif B[i] == 'X': X.append((A[i], 0)) DP = [[[0 for b in range(34)] for a in range(5)] for i in range(9)] DP[0][0][0] = 1 for u, d in Y: dp = deepcopy(DP) for i in range(len(DP)): for j in range(len(DP[i])): for k in range(len(DP[i][j])): if i >= 1 and j >= u and k >= d: dp[i][j][k] = (DP[i][j][k]+DP[i-1][j-u][k-d]) % MOD DP = deepcopy(dp) DP9 = [[0 for b in range(34)] for a in range(5)] for u, d in X: dp9 = deepcopy(DP9) for j in range(len(DP9)): for k in range(len(DP9[j])): if j >= u and k >= d: dp9[j][k] = (DP9[j][k]+DP[8][j-u][k-d]) % MOD DP9 = deepcopy(dp9) print(DP9[4][33])