케이블 연결

모든 점 (b,a)가 b/X + a/Y <= 1을 만족하도록 (X,0)과 (0,Y)를 잇는 선분을 놓고 sqrt(X^2+Y^2)의 최솟값을 구한다.

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

문제

서로 수직인 두 직선 도로 A와 B가 한 교차점에서 시작한다. 도로 A는 동쪽으로 뻗고, 도로 B는 북쪽으로 뻗는다.

두 도로는 이 지역에 건설 중인 대규모 산업 설비의 일부이고, 특수 고주파 케이블로 이어야 한다. 케이블을 교차점에 바로 놓을 수는 없다. 게다가 두 도로가 감싸는 구역의 모서리 쪽에 건물이 여러 채 서 있어서 케이블을 가로막는다.

케이블 회사의 분석가들은 협의와 기술적 제약 검토를 마친 뒤, 장애물로 정해지는 중요 지점의 집합을 만들었다. 그리고 케이블이 다음 세 조건을 모두 만족하도록 두 도로를 잇자고 제안했다.

  • 케이블은 직선으로 놓는다.
  • 케이블은 어떤 중요 지점과 두 도로가 만나는 모서리 사이를 지나지 않는다.
  • 케이블의 길이는 가능한 한 짧다.

교차점을 원점에 두고, 도로 A를 xx축의 양의 방향, 도로 B를 yy축의 양의 방향에 놓자. 도로 A까지의 거리가 aa이고 도로 B까지의 거리가 bb인 중요 지점은 좌표 (b,a)(b, a)에 있다. 케이블은 도로 A 위의 점 (X,0)(X, 0)과 도로 B 위의 점 (0,Y)(0, Y)를 잇는 선분이고, X>0X > 0이며 Y>0Y > 0이다. 두 번째 조건은 모든 중요 지점 (b,a)(b, a)bX+aY1\frac{b}{X} + \frac{a}{Y} \le 1을 만족한다는 뜻이다.

케이블의 길이 X2+Y2\sqrt{X^2 + Y^2}의 최솟값을 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어지고, 파일 끝에서 끝난다.

각 테스트 케이스의 첫 줄에는 중요 지점의 개수 NN (1N1061 \le N \le 10^6)이 주어진다. 이어지는 NN개의 줄에는 중요 지점이 한 줄에 하나씩 주어진다. 각 줄에는 공백으로 구분한 두 정수 aabb (1a,b100001 \le a, b \le 10\,000)가 있다. aa는 그 지점에서 도로 A까지의 거리이고, bb는 도로 B까지의 거리이다. 두 거리의 단위는 미터이다.

도로의 길이와 구역의 크기에는 제한이 없다. 한 테스트 케이스 안에서 좌표쌍 (a,b)(a, b)는 모두 서로 다르다. 모든 테스트 케이스의 NN을 더한 값은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다 케이블의 최소 길이 LL을 미터 단위로 한 줄에 출력한다.

LL은 소수점 아래 넷째 자리에서 반올림해, 소수점 아래 셋째 자리까지 정확히 세 자리로 출력한다.