만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

케이블 연결

시간 제한2초메모리 제한512 MB

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

보통10점 중 7점

유형
기하, 그리디, 이분 탐색
정답자
아직 제출이 없습니다

문제

서로 수직인 두 직선 도로 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+aY≤1\frac{b}{X} + \frac{a}{Y} \le 1을 만족한다는 뜻이다.

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

입력

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

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

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

출력

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

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

예제3

  1. 예제 1

    입력
    7
    5 1
    9 1
    6 2
    1 3
    8 4
    4 5
    2 8
    
    예상 출력
    16.648
    
  2. 예제 2

    입력
    1
    1 1
    
    예상 출력
    2.828
    
  3. 예제 3

    입력
    1
    1 1
    1
    3 4
    2
    10000 1
    1 10000
    
    예상 출력
    2.828
    9.866
    14143.550