쓰나미

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

요약
경보 센터를 세우고 도시들을 케이블로 연결해 모든 도시가 센터에 닿게 하되, 더 먼 도시에서 경보를 받는 일이 없도록 하면서 케이블 총 길이를 최소로 만든다.
난이도

보통10점 중 6점

유형
그래프, 최소 신장 트리, 그리디, 기하
정답자
아직 제출이 없습니다

문제

카테시아(Cartesia) 나라는 하나의 좌표평면으로 나타낼 수 있다. xx축은 해안선이며, 위쪽 반평면(y>0y > 0)은 육지, 아래쪽 반평면(y<0y < 0)은 바다이다. 육지에는 여러 개의 큰 도시가 있고, 각 도시의 위치는 y>0y > 0을 만족하는 좌표 (x,y)(x, y)로 주어진다.

가끔 카테시아 근처 바다에서 쓰나미가 발생하면 나라 전체가 침수될 수 있다. 물은 y=0y = 0에서 시작하여 yy가 커지는 방향으로 균일하게 밀려온다.

카테시아는 쓰나미 경보 시스템을 만들려고 한다. 이 시스템은 두 부분으로 이루어진다. 먼바다의 쓰나미를 감지할 수 있는 기상 관측소 하나와, 도시에서 도시로 직선 형태의 케이블을 통해 경보를 전달하는 유선 연결이다. (무선 통신은 사용할 수 없다.)

어떤 도시가 안전하다는 것은, 그 도시에 기상 관측소가 있거나, 다른 안전한 도시와 케이블로 직접 연결되어 있는 경우를 뜻한다. 즉 여러 도시를 거치더라도 관측소까지 이어지는 케이블 경로가 있으면 그 도시는 안전하다.

케이블과 각 도시를 지나는 전달 시간은 무시할 수 있을 만큼 짧다. 하지만 정치적인 이유로 문제가 복잡해진다. 도시 AA가 도시 BB로부터 케이블로 경보를 받는데 BB가 AA보다 해안선에서 더 멀리 떨어져 있다면, AA의 주민들은 항의한다. "우리가 바다에 더 가까운데, 왜 더 먼 도시보다 늦게 소식을 듣는가!" 그래서 당신은 어떤 도시도 자신보다 해안선에서 더 먼 도시로부터는 경보를 받지 않도록 시스템을 설계하기로 한다.

카테시아의 정보가 주어질 때, 모든 도시가 안전하고 어떤 도시도 자신보다 해안선에서 더 먼 도시로부터 경보를 받지 않는 쓰나미 경보 시스템을 만드는 데 필요한 케이블 길이의 최솟값을 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어질 수 있다.

각 테스트 케이스는 도시의 수를 나타내는 정수 nn (1≤n≤10001 \le n \le 1000)이 한 줄에 주어지는 것으로 시작한다.

이어지는 nn개의 줄에는 각각 두 정수 xx와 yy (−1000≤x≤1000-1000 \le x \le 1000, 0<y≤10000 < y \le 1000)가 주어지며, 이는 한 도시의 위치 (x,y)(x, y)를 나타낸다.

입력의 끝은 00 하나만 있는 줄로 표시된다.

출력

각 테스트 케이스마다, 쓰나미 경보 시스템을 만드는 데 필요한 케이블 길이의 최솟값을 한 줄에 출력한다. 이 값은 소수점 아래 둘째 자리까지의 실수로 출력한다.

예제3

  1. 예제 1

    입력
    3
    100 10
    300 10
    200 110
    4
    100 10
    300 10
    200 110
    200 60
    0
    
    예상 출력
    341.42
    361.80
    
  2. 예제 2

    입력
    1
    5 5
    0
    
    예상 출력
    0.00
    
  3. 예제 3

    입력
    2
    0 3
    40 3
    0
    
    예상 출력
    40.00