AT_abc463_d [ABC463D] Maximize the Gap
题目描述
在数轴上有 $N$ 条布条。第 $i$ 条布条 $(1\le i\le N)$ 覆盖了区间 $[L_i, R_i]$。数轴上的某些点可能被多条布条覆盖,也可能没有任何布条覆盖。
若两条布条有某一点被它们共同覆盖,则称这两条布条**重叠**。
对于不重叠的两条布条,定义它们的**距离**如下:
- 在被一条布条覆盖的所有点和被另一条布条覆盖的所有点中,$|p-q|$ 的最小值。
对于 $K$ 条两两不重叠的布条,定义它们的**分数**为这 $K$ 条布条中所有布条对之间的最小距离。请你在 $N$ 条布条中选出 $K$ 条不重叠的布条,使得分数最大,输出最大分数。
如果无法选出 $K$ 条两两不重叠的布条,则输出 $-1$。
输入格式
输入从标准输入获取,格式如下:
> $N\ K$
> $L_1\ R_1$
> $L_2\ R_2$
> $\vdots$
> $L_N\ R_N$
输出格式
输出答案。
说明/提示
### 样例解释 1
选择第 2 条、第 4 条和第 6 条布条,它们之间互不重叠。第二与第四布条的距离为 $2$,第二与第六布条的距离为 $8$,第四与第六布条的距离为 $2$,所以这组选择的分数为 $2$。
无法选择三条分数大于等于 $3$ 的布条组,所以输出 $2$。
### 样例解释 2
给出的两条布条发生了重叠,所以无法选出两条互不重叠的布条,因此输出 $-1$。
注意,第一条与第二条布条即使只在点 $5$ 重叠,也算重叠。
### 约束条件
- $2\le K\le N\le 2\times10^5$
- $0\le L_i