Problem C: 猴子除草

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:164 Solved:5

Description

猴子们有一个很大的花园,花园可以分成 N 块不同的区域(编号为 1 到 N )。春暖花开,同时也是杂草开始生长的季节,编号为 i 的区域中有 Ai个单位面积的杂草。为了除去花园中的杂草,猴子们请了 N 个除草员分别给 N 块区域除草,每个除草员每个单位时间内可以除去 1 个单位面积的杂草,某个区域的杂草除完后该除草员立即停止工作。为了提高除草的效率,希望尽快完成除草任务,猴子们买了一台除草机帮助除草员进行除草,但这台除草机在一个单位时间内仅能供一个除草员使用,使用除草机后除草员的工作效率提高到 M ,即该除草员每个单位时间可以除去 M 个单位面积的杂草(当然不使用后仍然恢复到原来的工作效率)。现在,请你编程帮猴子们决定,怎样分配这台除草机的使用对象才能使完成所有除草任务的时间最短?

Input

输入共 2 行。
第1 行两个整数N和M,表示花园中共有N 块待除草的不同区域和除草员使用除草机时的工作效率为M。
第 2 行 N 个整数,第 i 个整数 Ai表示第 i 块区域中有 Ai个单位面积的杂草。

Output

输出共一行一个整数,表示完成所有除草任务所需的最短时间

Sample Input Copy

3 4
2 3 5

Sample Output Copy

2

HINT

输入中有 3 块需要除草的区域,每块区域杂草的面积依次为 2,3,5 个单位面积。如果使用除草机在单位时间内能除 4 个单位面积的草。 完成所有除草任务最少需要 2 个单位时间。方案可能不唯一,比如:
方案一:在第一个单位时间内,除草机给 2 号区域的除草员使用,第一个单位时间结束时各区域依次还有 1,0,4 个单位面积的杂草。在第二个单位时间内,除草机给 3 号区域的除草员使用,第二个单位时间结束时各区域依次还有 0,0,0 个单位面积的杂草,即经过 2 个单位时间后所有的杂草被除尽。
方案二:在第一个单位时间内,除草机给 3 号区域的除草员使用,第一个单位时间结束时各区域依次还有 1,2,1 个单位面积的杂草。在第二个单位时间内,除草机给 2 号区域的除草员使用,第二个单位时间结束时各区域依次还有 0,0,0 个单位面积的杂草,即经过 2 个单位时间后所有的杂草被除尽。


【数据规模】
对于 30%的数据: 1≤N≤1,000;0≤Ai≤10,000;
对于 100%的数据:1≤N≤100,000,0≤Ai≤1,000,000,000;1≤M≤1,000,000,000;


Source/Category