#1220. 等待

等待

题目描述

NN 头奶牛,其中第 ii 头奶牛在时刻 tit_i 到达。

现在有 MM 辆大巴,每辆大巴最多可以乘坐 CC 头奶牛。你需要将这些奶牛分配到这 MM 辆大巴中。对于每一辆大巴,它的发车时间等于乘坐该大巴的奶牛中最晚到达的时间。

一头奶牛的等待时间,等于她乘坐的大巴的发车时间减去她自己的到达时间。

在合理的分配方案下,求出所有奶牛中最大等待时间最小值是多少。

输入格式

第一行包含三个空格分隔的整数 N,M,CN, M, C —— 分别表示奶牛的数量、大巴的数量以及每辆大巴的最大载客量。

第二行包含 NN 个空格分隔的整数 t1,t2,,tNt_1, t_2, \dots, t_N —— 表示每头奶牛的到达时间。

输出格式

输出一行,一个整数,表示在所有合理的分配方案中,最大等待时间的最小值。

样例输入 1

6 3 2
1 1 10 14 4 3

样例输出 1

4

说明

样例解释

一种最优的分配方案是:

  • 让两头在时刻 11 到达的奶牛乘坐第一辆大巴,大巴在时刻 11 发车,等待时间均为 00
  • 让在时刻 33 和时刻 44 到达的奶牛乘坐第二辆大巴,大巴在时刻 44 发车,等待时间分别为 1100
  • 让在时刻 1010 和时刻 1414 到达的奶牛乘坐第三辆大巴,大巴在时刻 1414 发车,等待时间分别为 4400

在上述方案中,等待时间最长的奶牛(时刻 1010 到达的奶牛)等待了 44 个单位时间。可以证明没有等待时间更短的方案。

数据范围

  • 对于所有测试点,保证 1N,M1051 \le N, M \le 10^5
  • 对于所有测试点,保证 1CN1 \le C \le N
  • 对于所有测试点,保证 0ti1090 \le t_i \le 10^9
  • 保证 M×CNM \times C \ge N,即大巴的总载客量足够运送所有的奶牛。
  • 保证所有的输入数值均为整数。