#41945: 有人可以告訴我為甚麼有些地方不通過嗎(python)


efsnner913@gmail.com (Eason 曾奕宸 J2E39)

學校 : 不指定學校
編號 : 279099
來源 : [49.215.77.33]
最後登入時間 :
2024-11-11 12:05:59
c575. APCS 2017-0304-4基地台 -- 2017年3月APCS | From: [36.235.11.216] | 發表日期 : 2024-09-12 17:43

NandK = input().split()#[0]=N,[1]=K
for x in range(len(NandK)):
    NandK[x] = int(NandK[x])
N = input().split()
for x in range(len(N)):
    N[x] = int(N[x])
N.sort()
Nmax = max(N) 
Nmin = min(N)
def test(R):
    num = 1
    nowpos = Nmin
    for x in range(len(N)):
        if N[x] > nowpos+R-1:
            num += 1
            nowpos = N[x]
    return(num)
maxrange = Nmax - Nmin + 1
minrange = 1
while maxrange - minrange > 1:
    Radius = (maxrange + minrange)//2
    nowK = test(Radius)
    if nowK > NandK[1]:
        minrange = Radius
    if nowK <= NandK[1]:
        maxrange = Radius
print(Radius)

 
ZeroJudge Forum