結果
| 問題 | 
                            No.2783 4-33 Easy
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2024-06-15 06:33:35 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                TLE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,057 bytes | 
| コンパイル時間 | 636 ms | 
| コンパイル使用メモリ | 82,664 KB | 
| 実行使用メモリ | 402,372 KB | 
| 最終ジャッジ日時 | 2024-06-15 06:33:41 | 
| 合計ジャッジ時間 | 5,227 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 1 TLE * 1 -- * 24 | 
ソースコード
from collections import defaultdict
N=int(input())
A=["-1"]+list(input().split())
B=["-1"]+list(input().split())
N+=1
X=[0 for _ in range(N)]
for i in range(N):
    if B[i][-1]=="X":
        if B[i]=="X":
            A[i]=int(A[i])
            B[i]=0
            X[i]=1
        elif B[i][:-1]=="33":
            A[i]=int(A[i])
            B[i]=33
            X[i]=1
        else:
            A[i]=-1;B[i]=-1
    else:
        A[i]=int(A[i])
        B[i]=int(B[i])
DP=[[defaultdict(int) for _ in range(10)] for _ in range(N)]
DP[0][0][(0,0,0)]=1
for i in range(1,N):
    for j in range(10):
        for (a,b,x),v in DP[i-1][j].items():
            # i枚目のカードを使わない
            DP[i][j][(a,b,x)]+=DP[i-1][j][(a,b,x)]
            DP[i][j][(a,b,x)]%=998244353
            # i枚目のカードを使う
            if A[i]!=-1 and j<9 and a+A[i]<=4 and b+B[i]<=33 and x+X[i]<=1:
                DP[i][j+1][(a+A[i],b+B[i],x+X[i])]+=DP[i-1][j][(a,b,x)]
                DP[i][j+1][(a+A[i],b+B[i],x+X[i])]%=998244353
print(DP[N-1][9][(4,33,1)])