각 소는 격자에서 아래와 오른쪽으로만 이동하며 울타리를 넘지 않고 도달할 수 있는 꽃이 몇 송이인지 구합니다.
어려움8세그먼트 트리정렬구간아직 제출이 없습니다시간 제한10초메모리 제한512 MB목장은 106개의 행과 106개의 열로 이루어진 격자다. 행은 위에서 아래로 1부터 106까지, 열은 왼쪽에서 오른쪽으로 1부터 106까지 번호가 붙어 있다.
목장에는 소 n마리가 각각 한 칸씩 차지하고 서 있다. 민들레 꽃 m송이도 각각 한 칸을 차지하며, 울타리 f개가 세워져 있다. 울타리는 칸의 경계선을 따라 놓인 직사각형이다. 두 울타리는 서로 교차하거나 맞닿지 않는다. 다만 어떤 울타리가 다른 울타리가 둘러싼 안쪽에 통째로 들어 있을 수는 있다.
바람 때문에 소는 아래쪽이나 오른쪽으로만 움직인다. 칸 (r,c)에 있는 소는 (r+1,c)나 (r,c+1)로 갈 수 있다. 다른 소나 꽃이 놓인 칸은 지나갈 수 있지만, 울타리는 넘지 못한다.
소마다 자기 칸에서 갈 수 있는 칸에 놓인 꽃이 몇 송이인지 세어라.
입력은 울타리, 꽃, 소의 세 부분으로 이루어진다.
첫째 부분의 첫 줄에는 울타리의 개수 f (0≤f≤200000)가 주어진다. 이어지는 f개의 줄에는 울타리 하나를 나타내는 정수 r1, c1, r2, c2 (1≤r1≤r2≤106, 1≤c1≤c2≤106)가 주어진다. (r1,c1)은 울타리 안쪽의 왼쪽 위 칸이고, (r2,c2)는 울타리 안쪽의 오른쪽 아래 칸이다. 두 울타리가 교차하거나 맞닿는 경우는 없다.
둘째 부분의 첫 줄에는 꽃의 개수 m (0≤m≤200000)이 주어진다. 이어지는 m개의 줄 중 k번째 줄에는 k번째 꽃이 놓인 칸의 위치 r과 c (1≤r,c≤106)가 주어진다. 두 꽃이 같은 칸에 놓이는 경우는 없다.
셋째 부분의 첫 줄에는 소의 개수 n (1≤n≤200000)이 주어진다. 이어지는 n개의 줄 중 k번째 줄에는 k번째 소가 서 있는 칸의 위치 r과 c (1≤r,c≤106)가 주어진다. 두 소가 같은 칸에 서 있거나, 소와 꽃이 같은 칸에 있는 경우는 없다.
n개의 줄을 출력한다. k번째 줄에는 k번째 소가 갈 수 있는 칸에 놓인 꽃의 개수를 출력한다.
그림은 첫 번째 예제의 배치를 나타낸다.
