가장 가까운 원
시간 제한8초메모리 제한512 MB
반지름이 최대 두 배까지만 차이 나는 100000개 이하의 겹치지 않는 원들이 주어질 때, 두 원 사이의 간격이 가장 작은 쌍을 찾아 그 거리를 출력한다.
문제
xy평면에 서로 겹치지 않는 N개의 원이 주어진다. 각 원의 반지름은 다르지만, 가장 큰 원의 반지름이 가장 작은 원의 반지름의 두 배를 넘지는 않는다.

그림 1: 예제 입력
두 원 C1과 C2 사이의 거리는 다음과 같이 정의한다.
여기서 (xi, yi)는 원 Ci의 중심 좌표이고, ri는 Ci의 반지름이다 (i = 1, 2).
가장 가까운 두 원을 찾아 그 거리를 출력하는 프로그램을 작성하라.
입력
입력은 여러 개의 테스트 케이스로 이루어지며, 마지막에 0 하나만 있는 줄이 주어지면 입력이 끝난다.
각 테스트 케이스의 첫 줄에는 원의 개수 N (2 ≤ N ≤ 100000)이 주어진다. 이어서 N개의 줄에 각 원을 나타내는 세 실수 R, X, Y가 주어진다. R은 원의 반지름, X와 Y는 각각 원의 중심의 x좌표와 y좌표이다.
출력
각 테스트 케이스마다 가장 가까운 두 원 사이의 거리를 출력한다. 소수점 아래 자릿수는 얼마든지 좋지만, 오차가 0.00001을 넘어서는 안 된다.