#1220. 等待
等待
题目描述
有 头奶牛,其中第 头奶牛在时刻 到达。
现在有 辆大巴,每辆大巴最多可以乘坐 头奶牛。你需要将这些奶牛分配到这 辆大巴中。对于每一辆大巴,它的发车时间等于乘坐该大巴的奶牛中最晚到达的时间。
一头奶牛的等待时间,等于她乘坐的大巴的发车时间减去她自己的到达时间。
在合理的分配方案下,求出所有奶牛中最大等待时间的最小值是多少。
输入格式
第一行包含三个空格分隔的整数 —— 分别表示奶牛的数量、大巴的数量以及每辆大巴的最大载客量。
第二行包含 个空格分隔的整数 —— 表示每头奶牛的到达时间。
输出格式
输出一行,一个整数,表示在所有合理的分配方案中,最大等待时间的最小值。
样例输入 1
6 3 2
1 1 10 14 4 3
样例输出 1
4
说明
样例解释
一种最优的分配方案是:
- 让两头在时刻 到达的奶牛乘坐第一辆大巴,大巴在时刻 发车,等待时间均为 。
- 让在时刻 和时刻 到达的奶牛乘坐第二辆大巴,大巴在时刻 发车,等待时间分别为 和 。
- 让在时刻 和时刻 到达的奶牛乘坐第三辆大巴,大巴在时刻 发车,等待时间分别为 和 。
在上述方案中,等待时间最长的奶牛(时刻 到达的奶牛)等待了 个单位时间。可以证明没有等待时间更短的方案。
数据范围
- 对于所有测试点,保证 。
- 对于所有测试点,保证 。
- 对于所有测试点,保证 。
- 保证 ,即大巴的总载客量足够运送所有的奶牛。
- 保证所有的输入数值均为整数。