벽을 세우자!
시간 제한2.5초메모리 제한1024 MB
볼록 N각형 안의 점마다 외부에서 그 점까지 넘어야 하는 벽의 최솟값을 최대로 만드는 삼각분할 값을 구합니다.
문제
새로 X국의 지도자가 된 준원은 국내에 벽을 세우기로 했다. X국의 외곽에는 이미 볼록 각형 모양의 벽이 세워져 있다. 그럼에도 준원은 국내에 지을 자택을 지키기 위해 벽을 더 설치하려 한다.
새로 짓는 벽은 외곽 벽의 꼭짓점 두 개를 잇는 선분 형태로만 지을 수 있다. 두 벽은 끝점이 아닌 곳에서 교차할 수 없다. 준원은 추가로 개의 벽을 설치할 예정이다. 준원은 자택의 후보지 곳도 정해 두었다. 각 후보지에 대해 준원은 다음 질문을 해결하려 한다.
개의 벽을 적절히 설치해서, X국 바깥에서 이 후보지로 들어가기 위해 최소한 넘어야 하는 벽의 개수를 최대한 크게 만들려 한다. 이때 최소한 넘어야 하는 벽의 개수의 최댓값을 구하라.
각 후보지에 대해 답을 구하라.
입력
첫째 줄에 양의 정수 이 주어진다. ()
이후 개의 줄에는 X국 외곽 벽의 꼭짓점 좌표 가 시계 반대 방향으로 주어진다. 외곽 벽은 에서 , 에서 , 이런 식으로 에서 까지 잇는 개의 선분으로 이루어진 볼록 각형이다.
다음 줄에는 후보지의 개수 가 주어진다. ()
이후 개의 줄에는 각 후보지의 좌표 가 주어진다. 후보지는 X국 안에 있으며, 어떤 두 꼭짓점을 잇는 직선 위에도 없다.
모든 좌표는 소수점 여섯 자리 이하로 주어지며, 절댓값은 이하이다. 어떤 좌표가 범위 안에서 바뀌어도 답이 변하지 않음이 보장된다.
출력
개의 후보지 각각에 대해, 최소한 넘어야 하는 벽 개수의 최댓값을 입력 순서대로 한 줄에 하나씩 출력한다.