초원

시간 제한1초메모리 제한128 MB

요약
최대 B개의 집합으로 꽃들을 분할해 각 집합의 최소 병목 경로 가중치 중 최댓값을 최소화하는 문제로, 이진 탐색과 유니온 파인드로 연결 요소 수를 세어 해결합니다.
난이도

보통10점 중 6점

유형
유니온 파인드, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

드넓은 초원에 수많은 꽃이 흩어져 피어 있습니다. 부지런한 벌들은 그 꽃들 사이를 날아다니며 앉았다 떠나기를 반복하고, 벌집에서 꿀을 만드는 원료인 꽃가루를 모읍니다. 벌 무리의 생존과 번영이 여기에 달려 있으므로, 가능한 한 많은 꽃가루를 모으려면 모든 꽃을 빠짐없이 방문해야 합니다.

벌 마야는 벌들이 초원의 모든 꽃을 방문하도록 일정표를 짜야 합니다. 일정표는 여러 개의 꽃 집합(정확히는 꽃의 위치들의 집합)으로 이루어집니다. 각 벌은 집합 하나를 배정받아, 그 집합에 속한 모든 꽃을 임의의 순서로 방문합니다. 한 꽃은 몇 번이든 다시 방문할 수 있습니다. 벌은 모두 BB마리이고 각 벌이 집합 하나씩을 맡으므로, 하나의 일정표에 들어가는 집합은 최대 BB개입니다.

  • 꽃들의 한 방문 순서의 무게는, 그 순서에서 연이어 방문하는 두 꽃 사이 거리의 최댓값입니다.
  • 한 꽃 집합의 무게는, 그 집합의 꽃들을 방문하는 모든 순서에서 나오는 무게 중 최솟값입니다. 각 벌은 자신의 집합에 대해 항상 무게가 가장 작아지는 순서로 비행합니다.
  • 일정표의 무게는, 그 일정표에 포함된 모든 집합의 무게 중 최댓값입니다.

두 꽃 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2) 사이의 거리는 유클리드 거리 (x1−x2)2+(y1−y2)2\sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}입니다.

마야가 무게가 가장 작은 일정표를 찾도록 돕는 프로그램을 작성하세요.

입력

첫째 줄에 두 자연수 FF와 BB가 주어집니다 (1≤F≤20001 \le F \le 2000, 1≤B≤F1 \le B \le F). FF는 초원에 있는 꽃의 수, BB는 꽃가루를 모으는 데 쓸 수 있는 벌의 수입니다.

다음 FF개의 줄에는 각각 두 자연수 XX와 YY가 주어지며 (1≤X,Y≤100001 \le X, Y \le 10000), 한 꽃의 좌표를 나타냅니다.

출력

첫째 줄에 주어진 입력에 대한 일정표의 가능한 최소 무게를 소수점 아래 둘째 자리까지 반올림하여 출력합니다.

예제4

  1. 예제 1

    입력
    3 2
    1 1
    2 3
    3 2
    
    예상 출력
    1.41
    
  2. 예제 2

    입력
    2 1
    1 1
    4 5
    
    예상 출력
    5.00
    
  3. 예제 3

    입력
    4 4
    1 1
    1 2
    5 5
    9 1
    
    예상 출력
    0.00
    
  4. 예제 4

    입력
    1 1
    42 42
    
    예상 출력
    0.00