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