만드는 중입니다

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

동굴 탐험가

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

요약
방향이 주어진 직선으로 단순 다각형을 잘라 가장 큰 조각만 남길 때, 남는 넓이의 최솟값을 구한다.
난이도

보통10점 중 7점

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

문제

마이크 스미스는 세계 곳곳의 동굴을 탐험한다. 어느 날 길을 막고 선 무서운 생물과 마주쳤다. 겁이 났지만 곧 칼을 뽑아 생물을 베었다. 생물은 여러 조각으로 갈라졌고, 면적이 가장 큰 조각 하나만 남고 나머지는 곧 죽어 사라졌다. 마이크는 남은 조각이 지나갈 만큼 작아질 때까지 몇 번 더 베었다.

이 상황을 다음과 같이 수학 문제로 바꾼다. 생물은 볼록할 수도 있고 오목할 수도 있는 단순 다각형이다. 마이크는 직선을 따라 칼을 휘둘러 생물을 벤다. 그 직선의 방향은 입력으로 주어지고, 위치는 마이크가 마음대로 고른다. 한 번 베면 생물은 여러 조각으로 나뉘고, 면적이 가장 큰 조각 하나만 남는다.

남는 조각의 면적이 가장 작아지도록 직선의 위치를 고르고, 그때의 면적을 구하라. 직선이 꼭짓점을 지나 두 조각이 한 점에서만 맞닿으면, 두 조각은 서로 다른 조각으로 센다.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합의 형식은 다음과 같다.

n
vx vy
x1 y1
...
xn yn

첫 줄에는 생물의 모양을 나타내는 다각형의 꼭짓점 개수 nn이 주어진다 (3≤n≤1003 \le n \le 100). 둘째 줄에는 칼의 방향 벡터 (vx,vy)(v_x, v_y)를 나타내는 정수 vxv_x와 vyv_y가 주어진다 (−10000≤vx,vy≤10000-10000 \le v_x, v_y \le 10000, vx2+vy2>0v_x^2 + v_y^2 > 0). 이어지는 nn개의 줄에는 ii번째 꼭짓점의 좌표 (xi,yi)(x_i, y_i)를 나타내는 정수 xix_i와 yiy_i가 주어진다 (0≤xi,yi≤100000 \le x_i, y_i \le 10000).

꼭짓점은 반시계 방향으로 주어진다. 다각형은 항상 단순하다. 즉 두 변은 공유하는 끝점에서만 만나고, 그 밖에서는 닿지도 교차하지도 않는다.

0 하나만 있는 줄이 나오면 입력이 끝난다. 이 줄은 데이터 집합이 아니다. 데이터 집합은 30개를 넘지 않는다.

출력

각 데이터 집합마다 남는 조각의 최소 면적을 소수점 아래 둘째 자리까지 한 줄에 출력한다. 면적이 2이면 2.00으로 출력한다. 정답은 소수점 아래 둘째 자리 반올림이 갈리는 값에서 0.002 이상 떨어지도록 데이터를 만들었으므로, 절대 오차가 10−310^{-3}보다 작은 풀이는 모두 같은 자리 수를 출력한다.

예제2

  1. 예제 1

    입력
    5
    0 1
    0 0
    5 0
    1 1
    5 2
    0 2
    7
    9999 9998
    0 0
    2 0
    3 1
    1 1
    10000 9999
    2 2
    0 2
    0
    
    예상 출력
    2.00
    2.25
    
  2. 예제 2

    입력
    3
    0 1
    0 0
    4 0
    0 4
    4
    1 1
    0 0
    10 0
    10 10
    0 10
    3
    1 0
    0 0
    9 0
    0 5
    0
    
    예상 출력
    4.00
    50.00
    11.25