행사장 대여 (Large)

최대 3000개의 축에 평행한 직사각형이 주어질 때, 겹치는 부분을 한 번만 세어 합집합의 넓이를 구한다.

보통7기하정렬세그먼트 트리누적 합면접 대비아직 제출이 없습니다시간 제한5초메모리 제한256 MB

문제

상현이는 국방부 퀘스트를 수행하기 전에 이별 파티를 열려고 한다. 파티를 치를 행사장을 빌리는 것이 첫 단계다.

대여 업체 직원이 모두 전직 프로그래머라 대여 방식이 독특하다. 상현이가 빌릴 장소를 정하면 업체는 그 장소를 빈틈없이 덮는 직사각형 NN개를 만든다. 그다음 직사각형의 개수 NN과 각 직사각형의 좌측 하단 좌표, 우측 상단 좌표를 알려 준다. NN개의 직사각형은 일부가 겹치거나 전체가 겹칠 수도 있다. 모든 직사각형의 변은 좌표축과 평행하다.

상현이가 빌린 행사장의 넓이, 즉 직사각형 NN개가 덮는 영역의 넓이를 구하는 프로그램을 작성하라.

입력

첫째 줄에 직사각형의 개수 NN이 주어진다. (2N30002 \le N \le 3000)

이어지는 NN개의 줄에 네 정수 x1x_1, y1y_1, x2x_2, y2y_2가 순서대로 주어진다. (50000x1<x250000-50000 \le x_1 < x_2 \le 50000, 50000y1<y250000-50000 \le y_1 < y_2 \le 50000) 이는 직사각형의 좌측 하단 좌표가 (x1,y1)(x_1, y_1), 우측 상단 좌표가 (x2,y2)(x_2, y_2)라는 뜻이다.

출력

첫째 줄에 상현이가 빌린 행사장의 넓이를 출력한다. 겹치는 부분은 한 번만 센다. 넓이는 최대 101010^{10}이라 32비트 정수 범위를 넘는다.