아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Trójmiasto

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

요약
최대 백만 개의 평면 점 가운데 세 점을 골라 세 쌍 사이 거리의 합을 가장 작게 구합니다.
난이도

어려움10점 중 8점

유형
기하, 분할 정복, 정렬
정답자
아직 제출이 없습니다

문제

바이토시아(Bajtocja)에는 nn개의 도시가 있으며, 각 도시의 위치는 평면 위 정수 좌표를 가진 점으로 나타낼 수 있다. 좌표가 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)인 두 도시 사이의 거리는 일반적인 유클리드 거리 (x2−x1)2+(y2−y1)2\sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}로 정의된다.

바이토시아의 왕 바이타자르(Bajtazar)는 도시 세 곳을 골라 하나로 이어 붙여 삼련시(Trójmiasto)를 만들려고 한다. 이는 정보올림피아드 결선과 여러 국제 프로그래밍 대회가 열리는, 어느 이국적인 왕국의 삼련시를 본뜬 것이다. 바이타자르는 선택한 세 도시에서 서로 다른 두 도시 사이 거리의 합이 최소가 되도록 세 도시를 고르려고 한다.

이렇게 골랐을 때, 세 도시 사이 거리의 합의 최솟값을 구하여라.

입력

첫째 줄에 도시의 수를 나타내는 정수 nn (3≤n≤1063 \le n \le 10^6)이 주어진다. 도시에는 11번부터 nn번까지 번호가 매겨져 있다. 이어지는 nn개의 줄에는 각각 두 정수 xix_i와 yiy_i (0≤xi,yi≤1090 \le x_i, y_i \le 10^9)가 공백 하나로 구분되어 주어지며, 이는 ii번 도시의 좌표를 뜻한다.

출력

선택한 삼련시를 이루는 세 도시 사이 거리의 합의 최솟값을 소수점 아래 둘째 자리까지 반올림하여 한 줄에 출력한다.

힌트

위 예시에서는 11번, 22번, 44번 도시를 고르는 것이 최적이다.

예제3

  1. 예제 1

    입력
    5
    0 0
    0 3
    0 8
    4 0
    5 4
    
    예상 출력
    12.00
    
  2. 예제 2

    입력
    3
    0 0
    3 0
    0 4
    
    예상 출력
    12.00
    
  3. 예제 3

    입력
    4
    0 0
    1 0
    0 1
    100 100
    
    예상 출력
    3.41