結果

問題 No.2653 [Cherry 6th Tune] Re: start! (Make it Zero!)
ユーザー minimumminimum
提出日時 2024-02-23 22:55:33
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 313 ms / 2,000 ms
コード長 859 bytes
コンパイル時間 373 ms
コンパイル使用メモリ 82,588 KB
実行使用メモリ 107,404 KB
最終ジャッジ日時 2024-09-29 08:12:26
合計ジャッジ時間 13,698 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 72
権限があれば一括ダウンロードができます

ソースコード

diff #

MOD = 998244353

def solve():
    N, M = map(int, input().split())
    X = list(map(int, input().split()))

    c = 0
    for i in range(N):
        if X[i] == -1:
            c += 1
    
    l, r = -1, -1
    res = 0
    s = 0
    for i in range(N):
        if X[i] == -1:
            l = i
            break
        s += X[i]
        s %= M
        if s == 0:
            res += 1
    if l == -1:
        if s == 0:
            print(N - res)
        else:
            print(0)
        return
    
    s = 0
    for i in range(N - 1, -1, -1):
        if X[i] == -1:
            r = i
            break
        s += X[i]
        s %= M
        if s == 0:
            res += 1

    inv = pow(M, MOD - 2, MOD)
    res += 1 + (r - l) * inv
    # print(res)
    
    print(((N - res) * pow(M, c - 1, MOD)) % MOD)


T = int(input())
for _ in range(T):
    solve()
0