21.11.13 18:11 작성
·
177
0
import sys
sys.stdin = open(r"섹션 4/4. 마구간 정하기/in2.txt", "r")
N, C = map(int, input().split())
points = []
for _ in range(N):
points.append(int(input()))
points.sort()
# 최초 범위 설정
left = 1
right = max(points) - min(points)
while left <= right:
mid = (left + right) // 2
cnt = 1 # 가장 가까운 말 사이 거리의 최대값이 mid일 때 마구간에 들어갈 수 있는 말의 수; while문 돌때마다 초기화 해주어야 함
last = points[0] # 연속된 두 말 사이의 거리를 계산할 기준점; 초기값은 마구간 좌표의 맨 첫번째 값
for i in range(1, N):
if points[i] - last >= mid:
cnt += 1
last = points[i]
if cnt < C: # 거리를 더 좁혀야 하는 경우
right = mid - 1
else: # 거리를 더 넓혀야 하는 경우
left = mid + 1
print(mid)