結果
問題 |
No.3051 Make All Divisible
|
ユーザー |
![]() |
提出日時 | 2025-03-09 01:52:25 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,235 bytes |
コンパイル時間 | 389 ms |
コンパイル使用メモリ | 81,464 KB |
実行使用メモリ | 63,808 KB |
最終ジャッジ日時 | 2025-03-09 01:52:28 |
合計ジャッジ時間 | 3,456 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 22 WA * 9 |
ソースコード
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+=k MAX=max(MAX,b+k) if MAX<=SUM//k: ANS=SUM//k break print(ANS)