이동통신 기지국

집 40개의 좌표가 주어질 때, 같은 반지름을 가진 두 원으로 모든 집을 덮을 수 있는 최소 반지름을 구한다.

보통6기하이분 탐색완전 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

한 통신사가 도시에서 가정용 전화 서비스를 시작하려고 한다. 전화기는 가정에 두지만, 도시 전체에 케이블망을 까는 비용을 피하려고 송신탑을 세우는 이동통신 기술을 쓴다.

탑에 설치한 송수신 장비의 출력이 그 탑의 서비스 반경을 정한다. 도시는 완전한 평면이므로 탑 하나가 덮는 구역은 원이다. 장비 값은 출력에 따라, 곧 서비스 반경에 따라 달라진다.

통신사는 도시에 탑을 정확히 두 개 세우기로 했다. 두 탑에 같은 장비를 설치하므로 서비스 반경도 서로 같다. 모든 가구가 서비스를 받으려면 두 탑이 덮는 구역이 합쳐서 도시의 모든 가구를 포함해야 한다. 또 장비 값을 줄이려면 두 탑의 서비스 반경이 가능한 한 작아야 한다. 아래 그림은 가구가 열 개인 도시에서 두 탑으로 덮는 방법 두 가지를 보여 준다. (a)와 (b) 모두 모든 가구를 덮지만, 서비스 반경이 더 작은 쪽은 (b)이다.

각 가구의 위치가 주어진다. 모든 가구가 서비스를 받도록 하는 두 탑의 최소 서비스 반경을 구하는 프로그램을 작성하라.

입력

입력은 여러 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 도시의 가구 수 NN (3N403 \le N \le 40)이 주어진다. 이어지는 NN개 줄에는 각각 한 가구의 좌표를 나타내는 정수 XXYY (0X1040 \le X \le 10^4, 0Y1040 \le Y \le 10^4)가 공백 하나를 사이에 두고 주어진다. 두 가구가 같은 위치에 있는 경우는 없다.

입력의 끝은 00 하나만 있는 줄로 나타낸다. 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 한 줄에 두 탑에 설치할 장비의 최소 서비스 반경을 출력한다. 값은 소수점 아래 셋째 자리에서 반올림해 소수점 아래 둘째 자리까지 적는다. 반올림 결과가 갈리는 경계에 정답이 놓이는 입력은 주어지지 않는다.