40分,python求助
查看原帖
40分,python求助
614071
python_xt楼主2021/12/13 19:41

代码如下,40分 L, N, M = map(int, input().strip().split())

a = [0]

ans = 0

left = 0

right = L

for i in range(0, N):

b = int(input())
a.append(b)

if N == M:

ans = L
print(ans)

else:

while left <= right:
    mid = (left + right)//2
    now = 0
    s = 0
    for i in range(1, N+1):
        if a[i] - a[now] < mid:
            s = s + 1
        else:
            now = i
    if s == M:
        ans = mid
        break
    if s < M:
        left = mid + 1
    if s > M:
        right = mid - 1
print(ans)
2021/12/13 19:41
加载中...