結果
| 問題 |
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 |
ソースコード
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)
titia