#GOC13331. 奶牛坐公交

奶牛坐公交

题目描述

农夫约翰正在他的农场主持一个新的吃草会议!

 

来自世界各地的牛正抵达当地机场参加吃草会议。具体来说,有n头牛到达机场(1≤n≤10^5),而第i头牛到达时间为ti(0≤ti≤10^9)。农场主约翰安排了m(1≤m≤10^5)辆公交车从机场运牛。每辆车最多可容纳c头奶牛(1≤c≤n)。农夫约翰正和公共汽车在机场等着,他想把到站的牛安排上公共汽车。公共汽车可以在最后一头母牛到达时离开。农夫约翰想成为一个好主人,所以不想让到达的奶牛在机场等太久。如果农夫约翰以最佳方式协调他的公共汽车,那么任何一头到站母牛的最大等待时间的最小可能值是多少?奶牛的等待时间是指它到达的时间和它乘坐的公共汽车离开的时间之差,保证m*c≥n。

 

 

Input (From File: bus.in)

 

第一行包含三个空格分隔的整数n、m和c。下一行包含n个空格分隔的整数,表示每头奶牛的到达时间。

 

 

Output (To File: bus.out)

 

一行,包含任何一头奶牛到达的最佳最短等待时间。

 

 

Sample Input 1

 

6 3 3

1 1 10 14 4 3

Sample Output 1

 

4

Hint

 

样例解析:

 

如果到达时间1的两头奶牛乘坐一辆公共汽车,第二辆车搭载时间3和4的奶牛,第三辆车接时间10和14的奶牛,则奶牛需要等待的最长时间为4个时间单位(到达时间10的奶牛从时间10等到时间14)。