import sys
N, C = map(int, input().split())
array = []
for _ in range(N):
array.append(int(sys.stdin.readline()))
array.sort()
start = 1
end = max(array)
while start <= end:
mid = (start+end)//2
current = array[0]
count = 1
for i in array:
if current + mid <= i:
current = i
count += 1
if count >= C:
start = mid + 1
result = mid
else:
end = mid - 1
print(result)
공유기 설치 간격을 mid로 설정하여 이진 탐색을 수행한다.
공유기 설치 갯수와 입력값 C가 같을 때의 공유기 설치 간격 mid를 result로 출력한다.
start 값을 입력 배열 array의 최소값으로 설정할 때는 채점 결과 오답으로 나왔다.