結果
| 問題 | No.2653 [Cherry 6th Tune] Re: start! (Make it Zero!) |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-07-11 00:01:54 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,765 bytes |
| 記録 | |
| コンパイル時間 | 229 ms |
| コンパイル使用メモリ | 96,228 KB |
| 実行使用メモリ | 128,548 KB |
| 最終ジャッジ日時 | 2026-07-11 00:02:09 |
| 合計ジャッジ時間 | 14,557 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 7 WA * 65 |
ソースコード
from sys import stdin
input = stdin.readline
MOD = 998244353
for _ in range(int(input())):
N, M = map(int, input().split())
X = list(map(int, input().split()))
cnt = X.count(-1)
if cnt <= 1:
if cnt == 1:
SUM = 0
for x in X:
if x != -1:
SUM += x
SUM %= M
X[X.index(-1)] = (M-SUM)%M
else:
if sum(X)%M != 0:
print(0)
continue
ans = 0
SUM = 0
for x in X:
SUM += x
SUM %= M
if SUM != 0:
ans += 1
print(ans)
continue
POW = [1]
for _ in range(N):
POW.append(POW[-1]*M%MOD)
leftC = 0
leftS = 0
rightC = 0
rightS = 0
for x in X:
if x == -1:
rightC += 1
else:
rightS += x
rightS %= M
ans = 0
for x in X:
if x == -1:
rightC -= 1
if 1 <= rightC:
ans += POW[leftC]*(M-1)%MOD*POW[rightC-1]%MOD
ans %= MOD
else:
if rightS != 0:
ans += POW[leftC]
ans %= MOD
leftC += 1
else:
rightS -= x
if 1 <= rightC:
if 1 <= leftC:
ans += POW[leftC-1]*(M-1)%MOD*POW[rightC-1]%MOD
ans %= MOD
else:
if (leftS+x)%M != 0:
ans += POW[rightC-1]
ans %= MOD
else:
if rightS != 0:
ans += POW[leftC-1]
ans %= MOD
leftS += x
print(ans)
detteiuu