아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

포스터 가리기

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

요약
새로 걸 축에 평행한 직사각형마다, 이미 걸려 있는 직사각형들의 합집합과 겹치는 넓이를 구한다.
난이도

어려움10점 중 9점

유형
세그먼트 트리, 누적 합, 기하, 정렬
정답자
아직 제출이 없습니다

문제

미렉은 좋아하는 밴드의 열성 팬이다. 공연이 열릴 때마다 보러 가고, 갈 때마다 포스터를 한 장씩 모은다. 새 포스터가 생기면 침대 위쪽 벽에 붙인다. 여러 해 동안 모으다 보니 벽이 거의 다 찼고, 이제는 새 포스터를 붙일 자리를 찾기가 어렵다. 방금 새 포스터 몇 장이 더 생겨서, 미렉은 각각을 벽의 어느 자리에 붙일지 고르려고 한다. 자리를 고르려면 그 포스터가 다른 포스터를 얼마나 가리는지 알아야 한다.

이미 벽에 붙어 있는 포스터의 좌표와, 아직 붙이지 않았지만 미렉이 붙일지 고민 중인 새 포스터의 좌표가 주어진다. 새 포스터마다 그 포스터가 직접 덮게 되는 기존 포스터 부분의 넓이를 구하라.

벽에 붙어 있는 포스터끼리는 겹칠 수 있다. 겹친 부분이 덮이더라도 그 넓이를 두 번 세면 안 된다.

새 포스터는 서로 독립적으로 판단한다. 한 새 포스터의 답을 구할 때 다른 새 포스터는 벽에 없는 것으로 본다.

입력

첫째 줄에 벽에 붙어 있는 포스터의 개수 NN (1≤N≤100 0001 \le N \le 100\,000)이 주어진다. 이어지는 NN개 줄에 그 포스터의 정보가 주어진다. N+2N+2번째 줄에는 미렉이 붙이려고 하는 새 포스터의 개수 MM (1≤M≤100 0001 \le M \le 100\,000)이 주어지고, 이어지는 MM개 줄에 그 포스터의 정보가 주어진다.

각 포스터는 변이 좌표축과 평행한 직사각형이고, 네 정수 x1x_1, y1y_1, x2x_2, y2y_2 (0≤x1<x2≤1090 \le x_1 < x_2 \le 10^9, 0≤y1<y2≤1090 \le y_1 < y_2 \le 10^9)로 주어진다. (x1,y1)(x_1, y_1)은 왼쪽 아래 꼭짓점, (x2,y2)(x_2, y_2)는 오른쪽 위 꼭짓점의 좌표다.

출력

새 포스터마다 정수 하나를 한 줄에 출력한다. 이 정수는 그 포스터가 덮는 기존 포스터 부분의 넓이다. 입력에 주어진 순서대로 출력한다.

힌트

아래 그림은 미렉의 벽이다. 점선 직사각형은 새 포스터이고, 채워진 직사각형은 이미 붙어 있는 포스터다.

예제2

  1. 예제 1

    입력
    2
    0 1 3 5
    2 3 6 6
    2
    1 0 5 4
    4 2 7 7
    
    예상 출력
    8
    6
    
  2. 예제 2

    입력
    1
    2 2 5 5
    3
    0 0 2 2
    5 5 8 8
    0 0 10 10
    
    예상 출력
    0
    0
    9