結果

問題 No.3051 Make All Divisible
ユーザー titia
提出日時 2025-03-09 01:45:37
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,217 bytes
コンパイル時間 434 ms
コンパイル使用メモリ 82,032 KB
実行使用メモリ 64,308 KB
最終ジャッジ日時 2025-03-09 01:45:41
合計ジャッジ時間 3,482 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 13 WA * 18
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline

T=int(input())

for tests in range(T):
    n,k=map(int,input().split())
    A=list(map(int,input().split()))

    SUM=sum(A)

    if SUM%k!=0:
        print(-1)
        continue

    flag=1
    for a in A:
        if a%k!=0:
            flag=0
            break

    if flag:
        print(0)
        continue

    A2=[]
    for a in A:
        if a!=0:
            A2.append(a)

    A=A2
    n=len(A)

    if n<k:
        print(-1)
        continue

    if n==k:
        B=[a%k for a in A]
        x=B[0]

        flag=1

        for b in B:
            if x!=b:
                flag=0
                break

        if flag:
            print(x)
        else:
            print(-1)
        continue

    B=[]
    C=[]
    SUM=0

    for a in A:
        if a>=k:
            B.append(a%k)
        else:
            C.append(a)

        SUM+=a%k

    if B==[]:
        MAX=max(C)
    elif C==[]:
        MAX=max(B)
    else:
        MAX=max(max(B),max(C))

    if MAX<=SUM//k:
        print(SUM//k)
        continue

    B.sort()

    ANS=-1

    for b in B:
        SUM+=1
        MAX=max(MAX,b+k)

        if MAX<=SUM//k:
            ANS=SUM//k

    print(ANS)
        

    
0