def solution(distance, rocks, n):
rocks.append(distance)
rocks.sort()
left, right = 0, distance
while left<=right:
mid = (left+right)//2
min_distance = float("inf")
remove_cnt = 0
curr = 0
for rock in rocks:
diff = rock - curr
if diff<mid:
remove_cnt+=1
else:
min_distance = min(min_distance, diff)
curr=rock
if remove_cnt>n:
right=mid-1
else:
answer = min_distance
left=mid+1
return answer