#L2086. 「NOI2016」区间

    ID: 4880 传统题 3000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>难度NOI/NOI+其他离散化数据结构线段树排序双指针扫描

「NOI2016」区间

题目描述

在数轴上有 nn 个闭区间 [l1,r1],[l2,r2],,[ln,rn][l_1, r_1], [l_2, r_2], \dots, [l_n, r_n]。现在要从中选出 mm 个区间,使得这 mm 个区间共同包含至少一个位置。换句话说,就是存在一个 xx,使得对于每一个被选中的区间 [li,ri][l_i, r_i],都有 lixril_i \leq x \leq r_i

对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。区间 [li,ri][l_i, r_i] 的长度定义为 rilir_i - l_i,即等于它的右端点的值减去左端点的值.

求所有合法方案中最小的花费。如果不存在合法的方案,输出 1-1


输入格式

第一行包含两个正整数 n,mn, m,用空格隔开,保证 1mn1 \leq m \leq n
接下来 nn 行,每行表示一个区间,包含用空格隔开的两个整数 lil_irir_i


输出格式

只有一行,包含一个正整数,即最小花费。


样例

输入:

6 3
3 5
1 2
3 4
2 2
1 5
1 4

输出:

2

如图,当 n=6n=6,m=3m=3 时,花费最小的方案是选取 [3,5][3,5][3,4][3,4][1,4][1,4] 这三个区间,它们共同包含 44 这个位置,所以是合法的。 其中最长的区间是 [1,4][1,4] ,最短的区间是 [3,4][3,4] ,所以它的花费为 (41)(43)=2(4−1)−(4−3)=2


数据范围与提示

所有测试数据的范围和特点如下表所示:

测试点编号 nn mm li,ril_i, r_i
1 20 9 0liri1000 \le l_i \le r_i \le 100
2 10
3 199 3 0liri1050 \le l_i \le r_i \le 10^5
4 200
5 1000 2
6 2000
7 199 60 0liri50000 \le l_i \le r_i \le 5000
8 200 50
9 0liri1090 \le l_i \le r_i \le 10^9
10 1999 500 0liri50000 \le l_i \le r_i \le 5000
11 2000 400
12 500 0liri1090 \le l_i \le r_i \le 10^9
13 30000 2000 0liri1050 \le l_i \le r_i \le 10^5
14 40000 1000
15 50000 15000
16 100000 20000
17 200000 0liri1090 \le l_i \le r_i \le 10^9
18 300000 50000
19 400000 90000
20 500000 200000