結果
| 問題 |
No.2783 4-33 Easy
|
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2024-06-14 21:53:31 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 327 ms / 2,000 ms |
| コード長 | 1,026 bytes |
| コンパイル時間 | 318 ms |
| コンパイル使用メモリ | 82,428 KB |
| 実行使用メモリ | 110,732 KB |
| 最終ジャッジ日時 | 2024-06-14 21:53:41 |
| 合計ジャッジ時間 | 8,907 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
N = int(input())
A = list(input().split())
B = list(input().split())
X = [0]*5
AB = []
MOD = 998244353
for i in range(N):
if len(B[i]) >= 2:
flag = False
for j in range(len(B[i])):
if B[i][j] == "X":
flag = True
if flag:
continue
if B[i] == "X":
X[int(A[i])] += 1
else:
AB.append((int(A[i]), int(B[i])))
dp = [[[[0]*34 for _ in range(5)] for _ in range(9)] for _ in range(len(AB)+1)]
dp[0][0][0][0] = 1
for i in range(len(AB)):
A, B = AB[i]
for j in range(9):
for k in range(5):
for l in range(34):
if dp[i][j][k][l] != 0:
dp[i+1][j][k][l] += dp[i][j][k][l]
dp[i+1][j][k][l] %= MOD
if j < 8 and k+A <= 4 and l+B <= 33:
dp[i+1][j+1][k+A][l+B] += dp[i][j][k][l]
dp[i+1][j+1][k+A][l+B] %= MOD
ans = 0
for i in range(5):
ans += dp[-1][-1][i][-1]*X[4-i]
ans %= MOD
print(ans)
detteiuu