구간

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

요약
각 구간 [a_i, b_i]마다 최소 c_i개의 정수를 포함해야 할 때, 모든 조건을 만족하는 가장 작은 정수 집합의 크기를 구한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 누적 합, 구간
정답자
아직 제출이 없습니다

문제

정수로 이루어진 닫힌 구간 [ai,bi][a_i, b_i] 가 nn개 주어지고, 정수 c1,c2,…,cnc_1, c_2, \dots, c_n 이 함께 주어진다.

다음을 수행하는 프로그램을 작성하시오.

  • 구간의 개수 nn, 각 구간의 두 끝점, 그리고 정수 c1,…,cnc_1, \dots, c_n 을 표준 입력에서 읽는다.
  • 모든 i=1,2,…,ni = 1, 2, \dots, n 에 대하여 구간 [ai,bi][a_i, b_i] 와 공통 원소를 적어도 cic_i 개 갖는 정수 집합 ZZ 의 최소 크기를 구한다.
  • 그 값을 표준 출력에 출력한다.

즉, 모든 ii 에 대해 ∣Z∩[ai,bi]∣≥ci|Z \cap [a_i, b_i]| \ge c_i 를 만족하면서 ∣Z∣|Z| 를 최소화하면 된다.

입력

첫째 줄에 구간의 개수 nn (1≤n≤50000)(1 \le n \le 50000) 이 주어진다.

이어지는 nn개의 줄에 각 구간의 정보가 주어진다. i+1i+1번째 줄에는 세 정수 aia_i, bib_i, cic_i 가 공백 하나로 구분되어 주어지며, 0≤ai≤bi≤500000 \le a_i \le b_i \le 50000 이고 1≤ci≤bi−ai+11 \le c_i \le b_i - a_i + 1 을 만족한다.

출력

모든 i=1,2,…,ni = 1, 2, \dots, n 에 대하여 구간 [ai,bi][a_i, b_i] 와 원소를 적어도 cic_i 개 공유하는 집합 ZZ 의 최소 크기를 정수 하나로 출력한다.

예제5

  1. 예제 1

    입력
    5
    3 7 3
    8 10 3
    6 8 1
    1 3 1
    10 11 1
    
    예상 출력
    6
    
  2. 예제 2

    입력
    1
    0 4 5
    
    예상 출력
    5
    
  3. 예제 3

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

    입력
    2
    0 2 2
    5 7 2
    
    예상 출력
    4
    
  5. 예제 5

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