結果
問題 |
No.2783 4-33 Easy
|
ユーザー |
|
提出日時 | 2025-02-14 12:29:12 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 139 ms / 2,000 ms |
コード長 | 820 bytes |
コンパイル時間 | 291 ms |
コンパイル使用メモリ | 82,748 KB |
実行使用メモリ | 77,264 KB |
最終ジャッジ日時 | 2025-02-14 12:29:18 |
合計ジャッジ時間 | 5,107 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
n=int(input()) A=list(map(int,input().split())) B=input().split() mod=998244353 S=[] for i in range(n): if B[i][-1]=="X": if B[i]=="X": S.append((A[i],0,1)) else: S.append((A[i],int(B[i][:-1]),1)) else: S.append((A[i],int(B[i]),0)) S.sort(key=lambda x:x[2]) dp=[[[0]*34 for _ in range(5)] for _ in range(9)] dp[0][0][0]=1 ans=0 for a,b,c in S: if c: if b==0: ans+=dp[8][4-a][33-b] ans%=mod else: for i in range(7,-1,-1): for j in range(4,-1,-1): for k in range(33,-1,-1): if dp[i][j][k]>0: if 0<=j+a<5 and 0<=k+b<34: dp[i+1][j+a][k+b]+=dp[i][j][k] dp[i + 1][j + a][k + b]%=mod print(ans)