지오해시 격자

2^n 곱하기 2^n 격자 안의 직교 다각형에 대해, 주어진 영역을 덮는 최대 t개 지오해시 구간 합집합의 최소 넓이를 묻는 질의 1e5개에 답한다.

어려움9분할 정복트리그리디동적 계획법아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

지오해시(geohash)는 지도 좌표를 스칼라 값으로 부호화하는 방법으로, 데이터베이스에서 지리 데이터를 효율적으로 저장하고 조회하는 데 쓰인다. 이 문제에서 지도는 표준 좌표계 위에 놓인 2n×2n2^n \times 2^n 크기의 격자이다. xx 좌표는 오른쪽으로 갈수록, yy 좌표는 위쪽으로 갈수록 커진다. 지도의 칸은 좌표축에 평행한 단위 정사각형이며, 왼쪽 아래 꼭짓점이 0x,y<2n0 \le x, y < 2^n을 만족하는 정수 좌표 (x,y)(x, y)이다.

2n×2n2^n \times 2^n 지도에는 모두 22n2^{2n}개의 칸이 있다. 칸 cc의 지오해시 h(c)h(c)2n2n비트의 음이 아닌 정수이고, 최상위 비트부터 한 비트씩 정한다. 처음에 보기 영역을 지도 전체로 두고 다음 두 단계를 nn번 반복한다.

  1. 보기 영역을 왼쪽 절반과 오른쪽 절반으로 똑같이 나눈다. 칸 cc가 왼쪽 절반에 있으면 다음 비트는 0이고, 아니면 1이다. 칸 cc가 들어 있는 절반이 새 보기 영역이 된다.
  2. 보기 영역을 아래쪽 절반과 위쪽 절반으로 똑같이 나눈다. 칸 cc가 아래쪽 절반에 있으면 다음 비트는 0이고, 아니면 1이다. 칸 cc가 들어 있는 절반이 새 보기 영역이 된다.

지오해시 구간 [a,b][a, b]는 지오해시 값이 aa 이상 bb 이하인 칸의 집합이다. 지도의 영역을 지오해시 구간 몇 개로 근사하면 편리할 때가 많다. 칸의 집합 CC와 정수 tt가 주어질 때, CC의 최적 tt-근사는 CC를 포함하고 지오해시 구간 최대 tt개의 합집합으로 나타낼 수 있는 영역 가운데 넓이가 가장 작은 것이다. 엄밀하게는 지오해시 구간 최대 tt개로 이루어진 집합 SS 가운데 다음 조건을 만족하는 것이다.

  • CC의 모든 칸이 SS의 구간 중 적어도 하나에 들어 있다.
  • SS에 속한 모든 구간의 합집합에 들어 있는 칸의 수가 가능한 한 작다.

영역 CC는 변이 격자와 평행한 다각형의 내부에 있는 칸 전체로 주어진다. 정수 qqt1,t2,,tqt_1, t_2, \ldots, t_q도 주어진다. 각 tkt_k에 대해 CC의 최적 tkt_k-근사의 넓이, 즉 그 영역에 들어 있는 칸의 수를 구하시오.

입력

첫째 줄에 정수 nn (1n301 \le n \le 30)이 주어진다. 지도 한 변의 길이는 2n2^n이다.

둘째 줄에 다각형의 꼭짓점 수인 짝수 mm (4m2004 \le m \le 200)이 주어진다. 다음 mm개 줄 가운데 kk번째 줄에는 다각형의 한 꼭짓점 좌표를 나타내는 정수 xkx_k, yky_k (0xk,yk2n0 \le x_k, y_k \le 2^n)가 주어진다. 꼭짓점은 반시계 방향 순서로 주어진다. 다각형의 각 변은 수직이거나 수평이다. 다각형은 자기 자신과 교차하거나 접하지 않으며, 이웃한 두 변이 평행한 경우도 없다.

그다음 줄에 질의의 수 qq (1q1000001 \le q \le 100\,000)가 주어진다. 다음 qq개 줄 가운데 kk번째 줄에는 kk번째 질의인 정수 tkt_k (1tk1091 \le t_k \le 10^9)가 주어진다.

출력

kk번째 줄에 주어진 영역의 최적 tkt_k-근사의 넓이를 출력한다.

힌트

그림의 영역에서 구간 [3,29][3, 29], [33,33][33, 33], [36,37][36, 37]은 최적 3-근사를 이룬다. 세 구간의 합집합의 넓이는 30이다.