結果

問題 No.2930 Larger Mex
ユーザー flippergo
提出日時 2025-06-17 17:19:33
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,375 bytes
コンパイル時間 430 ms
コンパイル使用メモリ 82,232 KB
実行使用メモリ 119,332 KB
最終ジャッジ日時 2025-06-17 17:19:46
合計ジャッジ時間 12,125 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 48 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

N,M = map(int,input().split())
A = list(map(int,input().split()))
ans = [0]*(N+2)
if M==0:
    for l in range(N):
        if A[l]>0:
            ans[1] += 1
            ans[N-l+1] -= 1
else:
    C = {}
    l = 0
    r = N+1
    for i in range(N):
        if 0<=A[i]<M:
            if A[i] not in C:
                C[A[i]] = 0
            C[A[i]] += 1
            if len(C)==M:
                r = i
                break
    if r<=N:
        ans[r-l+1] += 1
        ans[N-l+1] -= 1
        for l in range(1,N):
            if A[l-1] not in C:
                ans[r-l+1] += 1
                ans[N-l+1] -= 1
            else:
                C[A[l-1]] -= 1
                if C[A[l-1]]>0:
                    ans[r-l+1] += 1
                    ans[N-l+1] -= 1
                else:
                    a = A[l-1]
                    j = r+1
                    while j<N:
                        if A[j]==a:
                            C[a] += 1
                            r = j
                            break
                        if 0<=A[j]<M:
                            C[A[j]] += 1
                        j += 1
                    if j<N:
                        ans[r-l+1] += 1
                        ans[N-l+1] -= 1
                    else:
                        break
for i in range(1,N+1):
    ans[i] += ans[i-1]
for i in range(1,N+1):
    print(ans[i])
0