만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

지름의 합 최소화

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

요약
평면 위 n개 점을 두 개의 비어 있지 않은 그룹으로 나눌 때 두 그룹 지름의 합이 최소가 되는 값을 구해 출력한다.
난이도

어려움10점 중 8점

유형
기하, 이분 탐색, 정렬, 그리디
정답자
아직 제출이 없습니다

문제

새로 지은 도시에는 건물이 많다. 행정 효율을 높이려고 도시는 건물을 빨간 그룹과 파란 그룹, 두 그룹으로 나누려고 한다. 한 그룹의 지름은 그 그룹에 속한 두 건물 사이 거리의 최댓값이고, 그룹이 공간에 얼마나 넓게 퍼져 있는지를 재는 기준이다. 지름이 작을수록 행정이 쉬워진다. 두 그룹의 지름을 더한 값이 가장 작아지는 분할을 찾아야 한다.

건물은 평면 위의 점 하나로 나타내고, 두 점 사이의 거리는 유클리드 거리다. 점 집합의 지름은 그 집합에 속한 두 점 사이 거리의 최댓값이다. 평면 위에 서로 다른 점 nn개로 이루어진 집합 PP가 주어진다. P1≠∅P_1 \neq \emptyset, P2≠∅P_2 \neq \emptyset, P1∪P2=PP_1 \cup P_2 = P, P1∩P2=∅P_1 \cap P_2 = \emptyset을 만족하도록 PP를 두 부분집합 P1P_1과 P2P_2로 나누고, P1P_1의 지름과 P2P_2의 지름을 더한 값을 최소로 만들어라. 부분집합이 점 하나로만 이루어져 있으면 그 지름은 00이다.

예를 들어 정수 좌표를 가진 점 아홉 개가 그림 1(a)처럼 주어졌다고 하자. 나누는 방법은 여러 가지다. 그림 1(b)처럼 나누면 파란 점의 지름은 42+32=5\sqrt{4^2+3^2} = 5, 빨간 점의 지름은 52+12=26\sqrt{5^2+1^2} = \sqrt{26}이므로 합은 5+265 + \sqrt{26}이다. 그림 1(c)의 분할은 지름의 합이 4+344 + \sqrt{34}로, 그림 1(b)보다 조금 작다.

그림 1. (a) 입력으로 주어진 점. (b), (c) 두 가지 분할. 각 그룹의 지름을 결정하는 점 쌍을 그룹과 같은 색 선분으로 이어 두었다.

입력

첫째 줄에 점의 개수 nn이 주어진다 (2≤n≤5,0002 \le n \le 5{,}000).

다음 nn개 줄에 점이 한 줄에 하나씩 주어진다. 각 줄에는 점의 xx좌표와 yy좌표가 공백 하나로 구분되어 주어지며, 두 값 모두 00 이상 10,00010{,}000 이하의 정수다. 주어지는 점 nn개는 서로 다르다.

출력

첫째 줄에 두 그룹의 지름을 더한 값의 최솟값을 소수점 아래 넷째 자리까지 반올림해 출력한다. 소수점 아래 자릿수는 항상 넷이어야 한다. 예를 들어 답이 22이면 2.0000을 출력한다.

예제8

  1. 예제 1

    입력
    3
    0 1
    3 2
    3 0
    
    예상 출력
    2.0000
    
  2. 예제 2

    입력
    9
    2 2
    6 1
    7 3
    6 5
    3 5
    1 4
    2 6
    5 7
    4 3
    
    예상 출력
    6.0828
    
  3. 예제 3

    입력
    2
    0 0
    10000 10000
    
    예상 출력
    0.0000
    
  4. 예제 4

    입력
    5
    0 5000
    1 5000
    2 5000
    100 5000
    101 5000
    
    예상 출력
    3.0000
    
  5. 예제 5

    입력
    4
    0 0
    0 10
    10 0
    10 10
    
    예상 출력
    14.1421
    
  6. 예제 6

    입력
    4
    0 4
    10 4
    4 8
    4 0
    
    예상 출력
    8.0000
    
  7. 예제 7

    입력
    6
    0 0
    3 4
    1 1
    9990 9990
    9995 9998
    10000 9993
    
    예상 출력
    15.4403
    
  8. 예제 8

    입력
    12
    900 1000
    913 950
    913 1050
    950 913
    950 1087
    1000 900
    1000 1100
    1050 913
    1050 1087
    1087 950
    1087 1050
    1100 1000
    
    예상 출력
    200.6888