만드는 중입니다

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

범죄자

시간 제한4초메모리 제한512 MB

요약
격자에 위험한 칸 K개가 주어질 때, 각 관광객의 출발 칸에서 직사각형 안의 모든 칸이 안전하게 갈 수 있는 칸의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
분할 정복, 세그먼트 트리, 행렬
정답자
아직 제출이 없습니다

문제

고대 국가에는 n×mn \times m개의 도시가 있고, 1부터 n⋅mn \cdot m까지의 정수로 번호가 붙어 있다. 번호가 (x−1)⋅m+y(x - 1) \cdot m + y인 도시의 좌표는 (x,y)(x, y)이다 (1≤x≤n1 \leq x \leq n, 1≤y≤m1 \leq y \leq m). 관광객은 qq명이다. 처음에 ii번째 관광객은 도시 (xi,yi)(x_i, y_i)에 있다. 관광객은 모두 밖으로 나가 다른 도시에서 놀고 싶어 한다.

안타깝게도 n⋅mn \cdot m개 도시 중 KK개는 범죄자들이 장악하고 있어서 이 KK개 도시는 위험하다. 안전을 위해, 초기 좌표가 (x1,y1)(x_1, y_1)인 관광객은 min⁡(x1,x2)≤x≤max⁡(x1,x2)\min(x_1, x_2) \leq x \leq \max(x_1, x_2)이고 min⁡(y1,y2)≤y≤max⁡(y1,y2)\min(y_1, y_2) \leq y \leq \max(y_1, y_2)인 모든 도시 (x,y)(x, y)가 안전한 경우에만 도시 (x2,y2)(x_2, y_2)로 갈 수 있다.

각 관광객이 안전하게 도달할 수 있는 도시의 수를 구하라. 초기 도시도 포함한다.

입력

입력의 첫 줄에는 네 정수 nn, mm, KK, qq가 주어진다 (1≤n,m,K,q≤1051 \leq n, m, K, q \leq 10^5).

이어서 KK개의 줄이 주어진다. 각 줄에는 위험한 도시의 좌표 aia_i, bib_i가 주어진다 (1≤ai≤n1 \leq a_i \leq n, 1≤bi≤m1 \leq b_i \leq m). 같은 도시가 이 목록에 두 번 이상 나오지 않는다.

이어서 qq개의 줄이 주어진다. 각 줄에는 관광객의 초기 도시 xix_i, yiy_i가 주어진다 (1≤xi≤n1 \leq x_i \leq n, 1≤yi≤m1 \leq y_i \leq m). 각 관광객은 처음에 안전한 도시에 있음이 보장된다.

출력

각 관광객에 대해, 안전하게 도달할 수 있는 도시의 수를 한 줄에 정수 하나로 출력한다.

힌트

예시에서 세 번째 관광객은 여덟 개의 도시에 도달할 수 있다: (1,4)(1, 4), (2,4)(2, 4), (3,4)(3, 4), (4,4)(4, 4), (1,3)(1, 3), (2,3)(2, 3), (2,2)(2, 2), (2,1)(2, 1).

예제1

  1. 예제 1

    입력
    4 5 4 4
    1 2
    2 5
    3 3
    4 5
    1 5
    2 1
    2 4
    4 1
    
    예상 출력
    3
    9
    8
    9