結果
| 問題 |
No.2783 4-33 Easy
|
| コンテスト | |
| ユーザー |
ゼット
|
| 提出日時 | 2024-06-14 21:48:09 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 143 ms / 2,000 ms |
| コード長 | 915 bytes |
| コンパイル時間 | 273 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 77,056 KB |
| 最終ジャッジ日時 | 2024-06-14 21:48:14 |
| 合計ジャッジ時間 | 4,283 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
N=int(input())
A=list(map(str,input().split()))
B=list(map(str,input().split()))
dp=[[[0]*34 for i in range(5)] for j in range(10)]
L1=[]
L2=[]
for i in range(N):
x=B[i]
if x[-1]=='X':
if len(x)>1:
L2.append((int(A[i]),int(B[i][:-1])))
else:
L2.append((int(A[i]),0))
else:
L1.append((int(A[i]),int(x)))
mod=998244353
dp[0][0][0]=1
for _ in range(len(L1)):
x,y=L1[_][:]
for i in range(8,-1,-1):
for j in range(5):
for k in range(34):
if i==8:
continue
if j+x<=4 and k+y<=33:
dp[i+1][j+x][k+y]+=dp[i][j][k]
dp[i+1][j+x][k+y]%=mod
result=0
for _ in range(len(L2)):
x,y=L2[_][:]
if y>0:
continue
for j in range(5):
for k in range(34):
if y>0 and j<k:
continue
if j+x<=4 and k+y<=33:
dp[9][j+x][k+y]+=dp[8][j][k]
dp[9][j+x][k+y]%=mod
result+=dp[9][4][33]
result%=mod
print(result)
ゼット