結果
| 問題 |
No.3040 Aoiスコア
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2025-03-01 19:53:11 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 116 ms / 1,000 ms |
| コード長 | 1,103 bytes |
| コンパイル時間 | 269 ms |
| コンパイル使用メモリ | 82,412 KB |
| 実行使用メモリ | 78,008 KB |
| 最終ジャッジ日時 | 2025-06-20 21:02:55 |
| 合計ジャッジ時間 | 3,121 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
N,M = map(int,input().split())
S = input()
lis = [ [] for i in range(N) ]
for i in range(M):
A,B = map(int,input().split())
A -= 1
B -= 1
lis[A].append(B)
lis[B].append(A)
qnum_base = 0
for i in range(N):
if S[i] == "?":
qnum_base += 1
mod = 998244353
ans = 0
for v in range(N):
aoiq = [0,0,0,0]
if S[v] not in "o?":
continue
if S[v] == "o":
qnum = qnum_base
else:
qnum = qnum_base-1
for i in lis[v]:
if S[i] == "a":
aoiq[0] += 1
elif S[i] == "o":
aoiq[1] += 1
elif S[i] == "i":
aoiq[2] += 1
elif S[i] == "?":
aoiq[3] += 1
now = aoiq[0] * aoiq[2] * pow(26,qnum,mod) % mod
if aoiq[3] >= 1:
now += aoiq[0] * aoiq[3] * pow(26,qnum-1,mod) % mod
now %= mod
now += aoiq[3] * aoiq[2] * pow(26,qnum-1,mod) % mod
now %= mod
if aoiq[3] >= 2:
now += aoiq[3] * (aoiq[3]-1) * pow(26,qnum-2,mod) % mod
now %= mod
ans += now
# print (now)
ans %= mod
print (ans % mod)
SPD_9X2