#P1109. 连廊通行证

连廊通行证

题目描述

学校新建了一条从位置 11 到位置 mm 的长走廊。现在有 nn 张通行证,第 ii 张通行证可以在整数位置区间 [li,ri][l_i,r_i] 内自由通行,并有一个等级值 wiw_i

如果选择了一些通行证,那么只要两个位置同时被至少一张已选通行证覆盖,就可以在这两个位置之间移动。通过多张区间有重叠的通行证,也可以连续移动到更远的位置。

请你从所有通行证中选出一个子集,使得能从位置 11 移动到位置 mm。一个子集的代价定义为其中最大等级值减去最小等级值。求可行子集的最小代价。

题目保证至少存在一个可行子集。

输入格式

第一行输入两个整数 n,mn,m,分别表示通行证数量和终点位置。

接下来 nn 行,每行包含三个整数 li,ri,wil_i,r_i,w_i,表示第 ii 张通行证覆盖的区间和等级值。

输出格式

输出一行一个整数,表示最小代价。

样例

5 12
1 5 5
3 4 10
4 10 6
11 12 5
10 12 3
3
1 10
1 10 23
0

数据范围与约定

1n31051\le n\le3\cdot10^52m1062\le m\le10^6

1li<rim1\le l_i<r_i\le m1wi1061\le w_i\le10^6

保证每个测试用例至少存在一个可行的通行证子集。

占比 通行证数量 nn 坐标范围 mm
30%30\% 1n1031\le n\le10^3 2m1042\le m\le10^4
103<n10410^3<n\le10^4 104<m10510^4<m\le10^5
40%40\% 104<n310510^4<n\le3\cdot10^5 105<m10610^5<m\le10^6