트릭 오어 트릿
시간 제한1초메모리 제한128 MB
주어진 점들에 대해 x축 위 점까지의 최대 거리를 최소화하는 위치를 삼분 탐색으로 구하는 문제입니다.
문제
핼러윈 밤, 조니와 친구들은 마을의 집을 돌며 사탕을 모으기로 했다. 마을이 넓어 한 무리가 모든 집을 차례로 도는 것은 무리이므로, 아이들은 흩어져서 각자 한 집씩 맡기로 했다. 각 아이는 맡은 집으로 걸어가 사탕을 즉시 받은 뒤(주지 않으면 약간의 장난을 치기도 하고), 미리 정해 둔 약속 장소로 곧장 돌아온다. 모두 최대한 빨리 사탕을 먹고 싶어 하므로, 가장 늦게 돌아오는 아이가 도착하는 순간 잔치가 시작된다.
집은 개이며 평면 위의 직교좌표로 주어진다. 조니의 무리도 (조니를 포함해) 정확히 명이다. 아이들은 관청의 눈을 피하기 위해 마을을 가로지르는 강, 즉 직선 위의 한 지점에서 만나기로 했다. 집은 강의 양쪽 어느 쪽에나 있을 수 있고, 강 위에 있는 집(즉 인 수상 가옥)도 있을 수 있다.
모든 아이는 초당 미터의 속도로 어느 방향으로든 움직일 수 있다. 자정이 되는 순간 각 아이는 맡은 집의 문을 두드려 사탕을 즉시 받고, 약속 장소까지 최단 경로(직선)로 돌아온다. 아이 수와 집 수가 같으므로 모든 집을 동시에 방문할 수 있으며, 따라서 잔치가 시작되는 시각은 약속 장소에서 가장 먼 집까지의 거리와 같다.
이 시간이 가장 작아지도록 강 위의 약속 장소를 고르고, 그때의 최소 시간을 구하라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 집의 수 ()이 주어진다. 이어지는 개의 줄에는 각각 두 실수 와 ()가 주어지며, 이는 집의 좌표(단위: 미터)이다. 한 테스트 케이스 안의 모든 집의 위치는 서로 다르다. 각 테스트 케이스 뒤에는 빈 줄이 하나 온다. 하나만 있는 줄은 입력의 끝을 뜻하며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다, 강 위의 가장 좋은 약속 장소에 마지막 아이가 도착할 수 있는 최소 시간(자정 이후 경과한 초)을 한 줄에 출력한다. 값은 소수점 아래 정확히 여섯 자리로 반올림하여 출력한다(printf("%.6f")와 동일). 정답이 반올림 경곗값(중간값)에 놓이는 테스트 케이스는 없다.