방향이 주어진 직선으로 단순 다각형을 잘라 가장 큰 조각만 남길 때, 남는 넓이의 최솟값을 구한다.
보통7기하이분 탐색구현아직 제출이 없습니다시간 제한8초메모리 제한512 MB마이크 스미스는 세계 곳곳의 동굴을 탐험한다. 어느 날 길을 막고 선 무서운 생물과 마주쳤다. 겁이 났지만 곧 칼을 뽑아 생물을 베었다. 생물은 여러 조각으로 갈라졌고, 면적이 가장 큰 조각 하나만 남고 나머지는 곧 죽어 사라졌다. 마이크는 남은 조각이 지나갈 만큼 작아질 때까지 몇 번 더 베었다.
이 상황을 다음과 같이 수학 문제로 바꾼다. 생물은 볼록할 수도 있고 오목할 수도 있는 단순 다각형이다. 마이크는 직선을 따라 칼을 휘둘러 생물을 벤다. 그 직선의 방향은 입력으로 주어지고, 위치는 마이크가 마음대로 고른다. 한 번 베면 생물은 여러 조각으로 나뉘고, 면적이 가장 큰 조각 하나만 남는다.
남는 조각의 면적이 가장 작아지도록 직선의 위치를 고르고, 그때의 면적을 구하라. 직선이 꼭짓점을 지나 두 조각이 한 점에서만 맞닿으면, 두 조각은 서로 다른 조각으로 센다.
입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합의 형식은 다음과 같다.
n
vx vy
x1 y1
...
xn yn
첫 줄에는 생물의 모양을 나타내는 다각형의 꼭짓점 개수 n이 주어진다 (3≤n≤100). 둘째 줄에는 칼의 방향 벡터 (vx,vy)를 나타내는 정수 vx와 vy가 주어진다 (−10000≤vx,vy≤10000, vx2+vy2>0). 이어지는 n개의 줄에는 i번째 꼭짓점의 좌표 (xi,yi)를 나타내는 정수 xi와 yi가 주어진다 (0≤xi,yi≤10000).
꼭짓점은 반시계 방향으로 주어진다. 다각형은 항상 단순하다. 즉 두 변은 공유하는 끝점에서만 만나고, 그 밖에서는 닿지도 교차하지도 않는다.
0 하나만 있는 줄이 나오면 입력이 끝난다. 이 줄은 데이터 집합이 아니다. 데이터 집합은 30개를 넘지 않는다.
각 데이터 집합마다 남는 조각의 최소 면적을 소수점 아래 둘째 자리까지 한 줄에 출력한다. 면적이 2이면 2.00으로 출력한다. 정답은 소수점 아래 둘째 자리 반올림이 갈리는 값에서 0.002 이상 떨어지도록 데이터를 만들었으므로, 절대 오차가 10−3보다 작은 풀이는 모두 같은 자리 수를 출력한다.