만드는 중입니다

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

양궁

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

요약
N개의 점에서 볼록 껍질을 한 겹씩 벗겨 내고, Q개의 화살이 몇 겹 안쪽에 떨어지는지 점수를 출력합니다.
난이도

보통10점 중 6점

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

문제

평면 위에 NN개의 점이 있다. 남은 점이 없을 때까지 다음 시행을 반복하여 과녁을 만든다.

  • 남은 점들을 모두 포함하는 가장 작은 볼록 다각형을 얻는다.
  • 볼록 다각형 경계에 있는 점들을 제거한다.

한 점이 남거나 남은 점들이 한 직선 위에 있는 경우는 없다. 또한, 볼록 다각형 경계에 있는 어느 세 점도 한 직선 위에 있지 않음이 보장된다.

얻은 도형을 순서대로 P1,P2,⋯ ,PkP_1, P_2, \cdots, P_k라 할 때, 화살의 점수는 화살이 꽂힌 위치가 P1P_1 외부이면 00, P1P_1 내부이면서 P2P_2 외부이면 11, ⋯\cdots, Pk−1P_{k-1} 내부이면서 PkP_k 외부이면 k−1k-1, PkP_k 내부이면 kk이다. 도형의 내부는 경계를 포함한다.

입력

첫째 줄에 점의 개수 NN이 주어진다. (3≤N≤1 000)(3 \leq N \leq 1\,000)

둘째 줄부터 NN개의 줄에 걸쳐 각 점의 좌표를 나타내는 −109-10^9 이상 10910^9 이하의 두 정수가 공백을 사이에 두고 주어진다.

그다음 줄에 화살을 쏘는 횟수 QQ가 주어진다. (1≤Q≤1 000 000)(1 \leq Q \leq 1\,000\,000)

그다음 줄부터 QQ개의 줄에 걸쳐 화살이 꽂힌 위치의 좌표를 나타내는 −109-10^9 이상 10910^9 이하의 두 정수가 공백을 사이에 두고 주어진다.

출력

화살의 점수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    11
    4 4
    -4 -4
    0 1
    1 -1
    4 -4
    0 -3
    -4 4
    -2 0
    0 3
    -3 0
    3 0
    7
    4 5
    -4 2
    -2 3
    1 2
    1 0
    -1 0
    0 0
    
    예상 출력
    0
    1
    1
    2
    2
    3
    3