만드는 중입니다

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

도시 개발

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

요약
1부터 k까지의 모든 구간을 적어도 하나의 신청이 덮도록 신청을 골라, 구간별 압력 합의 최댓값을 가장 작게 만드는 값을 구합니다.
난이도

보통10점 중 7점

유형
이분 탐색, 동적 계획법, 세그먼트 트리, 구간
정답자
아직 제출이 없습니다

문제

20yy20yy년 모스크바에는 새로운 건설을 할 공간이 부족해졌다. 정부는 새로운 수입원을 찾고 있으며, 도시 경계 안의 철도 선로를 모두 지하 터널로 바꾼다고 발표했다. 비게 된 공간은 개발에 쓰인다.

재개발은 길이가 kk 미터인 옥탸브리스카야 철도 선로 구간에서 시작한다. 빈 공간에는 많은 관광객이 몰리겠지만, 터널에 가해지는 압력은 균형을 이뤄야 한다. 새 구역은 커피 가게나 아이스크림 트럭처럼 가장 중요한 사업체만 사용할 수 있다.

선로는 1부터 kk까지 번호가 붙은 kk개의 같은 길이 구간으로 나뉜다. 새 땅을 쓰려는 회사는 nn개다. ii번째 회사는 lil_i부터 rir_i까지의 모든 구간을 사용하려 하며, 건물의 압력을 나타내는 정수 pip_i를 제출했다. 각 신청은 통째로 수락하거나 거절해야 하며, 일부만 수락할 수는 없다.

시장은 모든 구간이 최소 한 회사에 의해 사용되기를 바란다. 또한 어느 구간에서든 최대 압력을 최소로 줄이고자 한다. 같은 구간을 여러 수락된 신청이 덮으면, 그 구간의 총 압력은 각 건물 압력의 합이다.

모든 구간이 최소 하나의 수락된 신청에 덮이도록 신청의 집합을 고르되, 모든 구간의 최대 압력이 가능한 한 작아지게 하라.

입력

첫 줄에 신청의 수 nn과 구간의 수 kk가 주어진다 (1≤n≤100 0001 \le n \le 100\,000, 1≤k≤1091 \le k \le 10^9).

다음 nn개의 줄에는 각각 정수 lil_i, rir_i, pip_i가 주어진다 (1≤li≤ri≤1091 \le l_i \le r_i \le 10^9, 1≤pi≤1091 \le p_i \le 10^9). 이는 ii번째 신청의 가장 왼쪽 구간, 가장 오른쪽 구간, 압력이다.

출력

조건을 만족하는 신청의 집합에서 모든 구간의 최대 압력이 가질 수 있는 최솟값을 한 줄에 출력한다. 조건을 만족하는 신청의 집합이 없으면 −1-1을 출력한다.

참고

첫 번째 예제에서 최적의 방법은 처음 두 신청을 수락하는 것이다. 이때 최대 압력은 세 번째 구간에서 나타나며 값은 3이다.

두 번째 예제에서는 세 번째 구간을 사용하려는 회사가 없으므로 조건을 만족할 수 없다.

세 번째 예제에서는 모든 신청을 수락하는 것이 최적해 중 하나다. 최대 압력은 네 번째 구간에서 나타나며 값은 8이다. 수락하는 신청의 개수를 최소화하거나 최대화할 필요는 없다.

네 번째 예제에서는 첫 번째 신청과 네 번째 신청을 수락하는 것이 최적해다. 이때 모든 구간의 압력은 1이다.

예제4

  1. 예제 1

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

    입력
    1 3
    1 2 1
    
    예상 출력
    -1
    
  3. 예제 3

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

    입력
    4 5
    1 4 1
    4 5 1
    3 4 1
    5 5 1
    
    예상 출력
    1