아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

그림자 속의 비밀

시간 제한1초메모리 제한128 MB

요약
단위 원기둥 중심들이 주어질 때, 태양 방향이 동쪽에서 서쪽으로 변할 동안 무한히 긴 그림자 띠 합집합의 전체 너비 최솟값과 최댓값을 구한다.
난이도

보통10점 중 7점

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

문제

아주 오래전, 넓은 공터에 똑같이 생긴 기둥(원기둥) 여러 개가 수직으로 세워져 있었다. 낮 동안 해가 하늘을 가로질러 움직이면 기둥들의 그림자도 땅 위에서 함께 움직였다. 각 기둥은 매우 높아서 그림자가 사실상 무한히 길다고 본다. 모든 상황은 바로 위에서 내려다본 평면도로 다룬다.

그림 F-1: 기둥(원기둥)

그림 F-2: 기둥과 그림자의 평면도

모든 기둥의 밑면 원판은 반지름이 11(지름 22)로 같으므로, 기둥 하나가 만드는 그림자는 폭이 지름과 같은 22인 무한히 긴 띠이다. 전체 그림자의 폭은 모든 그림자 띠의 합집합을 햇빛 방향에 수직으로 잰 전체 폭이다. 일부 띠가 서로 겹칠 수 있으므로 이 전체 폭은 해의 방향에 따라 달라진다.

그림 F-3: 전체 그림자가 좁아지는 해의 방향

전체 그림자가 서로 떨어진 여러 조각으로 나뉘면, 그 폭은 각 조각의 폭을 모두 더한 값으로 정의한다.

그림 F-4: 전체 그림자가 넓어지는 해의 방향

해의 방향은 각도 θ\theta로 나타낸다. 동쪽이 θ=0\theta = 0, 남쪽이 θ=π/2\theta = \pi/2, 서쪽이 θ=π\theta = \pi이며, 해는 동쪽(θ=0\theta = 0)에서 떠서 서쪽(θ=π\theta = \pi)으로 진다. xx축은 동쪽을, yy축은 북쪽을 향하고, 각 기둥 밑면 원판의 중심은 좌표 (x,y)(x, y)로 주어진다.

그림 F-5: 해의 방향 각도 θ\theta의 정의

θ\theta가 [0,π)[0, \pi) 구간을 움직이는 동안 전체 그림자의 폭은 여러 값을 가진다. 모든 해의 방향에 대하여 전체 그림자 폭의 최솟값 Wmin⁡W_{\min}과 최댓값 Wmax⁡W_{\max}를 구하여라. 공터는 평평한 평면이라고 가정한다.

입력

입력은 여러 개의 데이터셋으로 이루어지며, 마지막 줄에 0 하나만 있는 줄로 끝난다.

각 데이터셋의 형식은 다음과 같다.

n
x1 y1
x2 y2
...
xn yn
  • nn은 기둥의 개수로 1≤n≤1001 \le n \le 100인 양의 정수이다.
  • xkx_k와 yky_k는 kk번째 기둥 밑면 원판 중심의 좌표로, 1≤xk,yk≤301 \le x_k, y_k \le 30인 양의 정수이며 공백으로 구분된다.

각 밑면 원판의 반지름은 11(지름 22)이다. 기둥끼리 맞닿을 수는 있지만 겹치지는 않으므로, 임의의 두 중심 사이의 거리는 항상 22 이상이다.

출력

각 데이터셋마다 두 줄을 출력하며, 줄에는 불필요한 문자(예: 뒤따르는 공백)를 포함하지 않는다.

  • 첫째 줄에는 전체 그림자 폭의 최솟값 Wmin⁡W_{\min}을,
  • 둘째 줄에는 전체 그림자 폭의 최댓값 Wmax⁡W_{\max}를 출력한다.

각 폭은 소수점 아래 다섯째 자리에서 반올림하여 정확히 소수점 아래 44자리로 출력한다.

예제4

  1. 예제 1

    입력
    3
    1 1
    3 1
    4 3
    4
    1 1
    2 3
    3 8
    1 9
    8
    1 1
    3 1
    6 1
    1 3
    5 3
    1 7
    3 5
    5 5
    8
    20 7
    1 27
    30 14
    9 6
    17 13
    4 2
    17 7
    8 9
    0
    
    예상 출력
    3.1094
    5.6056
    4.0000
    7.1623
    6.8507
    9.3301
    9.5155
    15.6056
    
  2. 예제 2

    입력
    1
    15 15
    0
    
    예상 출력
    2.0000
    2.0000
    
  3. 예제 3

    입력
    2
    1 1
    5 1
    0
    
    예상 출력
    2.0000
    4.0000
    
  4. 예제 4

    입력
    7
    1 1
    6 2
    11 1
    3 6
    9 7
    2 11
    10 12
    0
    
    예상 출력
    7.8605
    12.9412