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

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

도시의 지평선

면접 대비

시간 제한1초메모리 제한128 MB

요약
모두 지면에 놓인 N개의 직사각형이 주어질 때, 이들의 합집합 넓이를 구한다.
난이도

보통10점 중 7점

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

문제

농부 존(Farmer John)이 소들을 데리고 도시로 여행을 왔습니다. 해가 지자, 소들은 도시의 지평선을 바라보며 직사각형 건물들이 만들어 내는 아름다운 실루엣을 감상합니다.

지평선 전체는 하나의 수직선으로 나타내며, 그 위에 NN개의 건물이 서 있습니다 (1≤N≤40,0001 \le N \le 40{,}000). ii번째 건물의 실루엣은 지평선 위의 위치 AiA_i부터 BiB_i까지를 밑변으로 하고 (1≤Ai<Bi≤1,000,000,0001 \le A_i < B_i \le 1{,}000{,}000{,}000), 높이는 HiH_i입니다 (1≤Hi≤1,000,000,0001 \le H_i \le 1{,}000{,}000{,}000). 모든 건물은 지면(y=0y = 0) 위에 세워져 있습니다.

NN개의 건물이 함께 만들어 내는 실루엣, 즉 모든 직사각형의 합집합이 덮는 넓이를 제곱 단위로 구하세요. 서로 겹치는 부분은 한 번만 세어야 합니다.

입력

  • 첫째 줄: 정수 NN
  • 둘째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에는 ii번째 건물을 나타내는 세 정수 AiA_i, BiB_i, HiH_i가 공백으로 구분되어 주어집니다.

출력

  • 첫째 줄: NN개의 건물이 만드는 실루엣 전체의 넓이(제곱 단위)

힌트

위 예제에서 첫 번째 건물과 네 번째 건물은 넓이 11만큼 겹칩니다. 겹치는 부분을 한 번만 세면 전체 넓이는 3×1+1×4+2×2+2×3−1=163 \times 1 + 1 \times 4 + 2 \times 2 + 2 \times 3 - 1 = 16이 됩니다.

예제1

  1. 예제 1

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