結果
| 問題 |
No.2019 Digits Filling for All Substrings
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2022-07-25 02:04:06 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 619 ms / 2,000 ms |
| コード長 | 537 bytes |
| コンパイル時間 | 147 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2024-07-06 22:02:50 |
| 合計ジャッジ時間 | 10,122 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 30 |
ソースコード
N=int(input())
S=input().strip()
mod=998244353
if S[0]=="?":
DP=[4,3,3]
else:
x=int(S[0])
DP=[0,0,0]
DP[x%3]=1
ANS=0
for s in S[1:]:
ANS+=DP[0]
ANS%=mod
if s=="?":
NDP=[4,3,3]
for i in range(3):
NDP[i]+=DP[i]*4
NDP[(i+1)%3]+=DP[i]*3
NDP[(i+2)%3]+=DP[i]*3
else:
x=int(s)
NDP=[0,0,0]
NDP[x%3]=1
for i in range(3):
NDP[(i+x)%3]+=DP[i]
for i in range(3):
DP[i]=NDP[i]%mod
print((ANS+DP[0])%mod)
titia