만드는 중입니다

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

벽을 세우자!

시간 제한2.5초메모리 제한1024 MB

요약
볼록 N각형 안의 점마다 외부에서 그 점까지 넘어야 하는 벽의 최솟값을 최대로 만드는 삼각분할 값을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 기하, 트리
정답자
아직 제출이 없습니다

문제

새로 X국의 지도자가 된 준원은 국내에 벽을 세우기로 했다. X국의 외곽에는 이미 볼록 NN각형 모양의 벽이 세워져 있다. 그럼에도 준원은 국내에 지을 자택을 지키기 위해 벽을 더 설치하려 한다.

새로 짓는 벽은 외곽 벽의 꼭짓점 두 개를 잇는 선분 형태로만 지을 수 있다. 두 벽은 끝점이 아닌 곳에서 교차할 수 없다. 준원은 추가로 N−3N-3개의 벽을 설치할 예정이다. 준원은 자택의 후보지 QQ곳도 정해 두었다. 각 후보지에 대해 준원은 다음 질문을 해결하려 한다.

N−3N-3개의 벽을 적절히 설치해서, X국 바깥에서 이 후보지로 들어가기 위해 최소한 넘어야 하는 벽의 개수를 최대한 크게 만들려 한다. 이때 최소한 넘어야 하는 벽의 개수의 최댓값을 구하라.

각 후보지에 대해 답을 구하라.

입력

첫째 줄에 양의 정수 NN이 주어진다. (3≤N≤50003 \le N \le 5000)

이후 NN개의 줄에는 X국 외곽 벽의 꼭짓점 좌표 xi,yix_i, y_i가 시계 반대 방향으로 주어진다. 외곽 벽은 (x1,y1)(x_1, y_1)에서 (x2,y2)(x_2, y_2), (x2,y2)(x_2, y_2)에서 (x3,y3)(x_3, y_3), 이런 식으로 (xN,yN)(x_N, y_N)에서 (x1,y1)(x_1, y_1)까지 잇는 NN개의 선분으로 이루어진 볼록 NN각형이다.

다음 줄에는 후보지의 개수 QQ가 주어진다. (1≤Q≤50001 \le Q \le 5000)

이후 QQ개의 줄에는 각 후보지의 좌표 ai,bia_i, b_i가 주어진다. 후보지는 X국 안에 있으며, 어떤 두 꼭짓점을 잇는 직선 위에도 없다.

모든 좌표는 소수점 여섯 자리 이하로 주어지며, 절댓값은 10810^8 이하이다. 어떤 좌표가 10−610^{-6} 범위 안에서 바뀌어도 답이 변하지 않음이 보장된다.

출력

QQ개의 후보지 각각에 대해, 최소한 넘어야 하는 벽 개수의 최댓값을 입력 순서대로 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    6
    -0.5 -1.0
    0.5 -1.0
    1.0 0.0
    0.5 1.0
    -0.5 1.0
    -1.0 0.0
    2
    0.0 -0.2
    0.0 -0.8
    
    예상 출력
    2
    1