만드는 중입니다

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

포스터

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

요약
평면에 순서대로 붙인 N개의 직사각형 포스터 각각에 대해, 뒤에 붙은 포스터에 가려지지 않고 보이는 넓이를 구한다.
난이도

어려움10점 중 9점

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

문제

알고리즘 대통령을 뽑는 선거가 열린다. 출마 자격에 제한이 없어서 후보가 아주 많고, 홍보 경쟁도 그만큼 치열하다.

가장 큰 골칫거리는 포스터다. 후보는 저마다 자신을 홍보하는 직사각형 포스터를 한 장씩 들고 나와 거리의 벽에 붙인다. 크기가 제각각인 포스터가 벽을 뒤덮고, 남의 포스터에 가려진 후보가 그 위에 다시 붙이는 일이 반복되자 선거관리위원회가 규칙을 정했다.

후보 NN명은 1번부터 NN번까지 서로 다른 번호를 받는다. 각 후보는 벽에 포스터를 한 장만 붙이고, 붙이는 순서는 번호 순서와 같다. 즉 번호가 큰 후보의 포스터가 이미 붙어 있던 포스터를 덮는다.

벽은 2차원 좌표평면으로 볼 수 있을 만큼 크다. NN명이 모두 포스터를 붙인 뒤 벽을 정면에서 봤을 때, 후보마다 자기 포스터가 보이는 넓이를 구하자.

입력

첫째 줄에 후보의 수 NN (1≤N≤50001 \le N \le 5000)이 주어진다.

둘째 줄부터 NN개의 줄에 1번 후보부터 NN번 후보까지의 포스터 정보가 한 줄에 하나씩 주어진다. 각 줄은 네 정수 x1x_1, y1y_1, x2x_2, y2y_2로 이루어지며, 왼쪽 아래 꼭짓점이 (x1,y1)(x_1, y_1)이고 오른쪽 위 꼭짓점이 (x2,y2)(x_2, y_2)인 직사각형 포스터를 그 자리에 붙인다는 뜻이다. x1<x2x_1 < x_2, y1<y2y_1 < y_2이고, 네 좌표는 모두 −109-10^9 이상 10910^9 이하의 정수다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 ii번 후보의 포스터가 보이는 넓이를 출력한다.

힌트

아래 그림은 첫 번째 예제를 그린 것이다.

  • 1번 후보: 파란색 포스터
  • 2번 후보: 초록색 포스터
  • 3번 후보: 주황색 포스터
  • 4번 후보: 노란색 포스터

예제2

  1. 예제 1

    입력
    4
    0 0 8 7
    2 3 11 11
    5 1 10 6
    1 4 7 8
    
    예상 출력
    23
    41
    21
    24
    
  2. 예제 2

    입력
    2
    0 0 3 3
    0 0 3 3
    
    예상 출력
    0
    9