結果

問題 No.2783 4-33 Easy
コンテスト
ユーザー ゼット
提出日時 2024-06-14 21:48:09
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 133 ms / 2,000 ms
コード長 915 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 159 ms
コンパイル使用メモリ 85,692 KB
実行使用メモリ 79,564 KB
最終ジャッジ日時 2026-03-06 01:27:37
合計ジャッジ時間 3,949 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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)
0