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

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

산불 감시탑

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

요약
x좌표가 증가하는 다각형 사슬 위에 수직 탑을 세울 때 모든 지점이 보이는 가장 작은 높이를 구합니다.
난이도

어려움10점 중 8점

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

문제

어느 산악 지역에서 지난해 건기에 산불이 여러 번 발생했다. 올해 건기가 시작되기 전에, 산맥의 모든 비탈을 감시할 수 있는 산불 감시탑 하나를 세우려고 한다. 건설 비용을 최대한 줄이기 위해, 감시탑의 높이를 가능한 한 낮게 만들고 싶다.

다면체 지형(polyhedral terrain)은 평평한 면들로만 이루어지고 곡면이나 처마처럼 튀어나온 부분이 없는 산맥의 표면이라고 생각할 수 있다. 이 문제에서는 2차원 경우만 다루며, 이때 지형은 평면 위의 다각형 사슬(polygonal chain) 하나로 단순화된다. 이 사슬은 xx좌표가 증가하는 순서로 주어진 nn개의 꼭짓점 v1,v2,…,vnv_1, v_2, \dots, v_n과, 인접한 두 꼭짓점 viv_i와 vi+1v_{i+1} (1≤i≤n−11 \le i \le n-1)을 잇는 n−1n-1개의 변으로 이루어진다.

아래 그림은 어떤 다각형 사슬에 대해 높이가 가장 낮은 산불 감시탑을 보여 준다.

감시탑은 지형 위에 수직으로 세우며, 그 밑면은 사슬의 어떤 꼭짓점 위에도, 어떤 변 위에도 놓을 수 있다. 탑 꼭대기에서 사슬 위의 모든 점을 볼 수 있도록 하면서, 탑의 높이를 가장 작게 하는 값을 구하여라. 지형의 한 점 qq가 탑 꼭대기 pp에서 보인다는 것은 선분 pqpq가 지형 아래로 내려가지 않는다는 뜻이다. 감시탑의 최소 높이가 00인 경우는 없다고 가정해도 된다.

입력

입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 첫째 줄에는 꼭짓점의 개수 nn이 주어지며, 4≤n≤10004 \le n \le 1000이다. 이어지는 nn개의 줄에는 각 꼭짓점의 좌표를 나타내는 두 정수 xx와 yy가 주어지며, 0≤x,y≤1000000 \le x, y \le 100000이다. 꼭짓점은 xx좌표가 서로 다르며 증가하는 순서로 주어진다.

출력

각 테스트 케이스마다 한 줄에, 주어진 다각형 사슬 전체를 감시할 수 있는 산불 감시탑의 최소 높이를 소수점 아래 한 자리까지 반올림하여 출력한다. 이 최소 높이가 10001000보다 크면 대신 IMPOSSIBLE을 출력한다.

예제5

  1. 예제 1

    입력
    3
    12
    1 8
    3 11
    5 1
    7 4
    9 3
    10 1
    12 7
    14 4
    16 3
    19 2
    20 13
    22 12
    11
    11 9
    16 215
    21 9
    26 215
    31 9
    36 1
    41 9
    46 215
    51 9
    56 215
    61 9
    8
    7 8
    12 18
    17 8
    27 23
    37 23
    47 8
    52 18
    57 8
    
    예상 출력
    10.5
    IMPOSSIBLE
    35.0
    
  2. 예제 2

    입력
    1
    5
    0 0
    10 20
    20 0
    30 20
    40 0
    
    예상 출력
    40.0
    
  3. 예제 3

    입력
    1
    11
    0 0
    5 40
    10 5
    15 45
    20 8
    25 50
    30 8
    35 45
    40 5
    45 40
    50 0
    
    예상 출력
    150.0
    
  4. 예제 4

    입력
    1
    6
    4 14
    5 0
    7 10
    14 17
    16 13
    38 29
    
    예상 출력
    12.0
    
  5. 예제 5

    입력
    1
    7
    0 0
    1 600
    2 0
    3 600
    4 0
    5 600
    6 0
    
    예상 출력
    IMPOSSIBLE