#2600. 书架----cx201203
书架----cx201203
Background
为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的n本书放到上课教室的书架上去。
教室的书架是一层一层叠起来的,每一层最多可以放m本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为0。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这n本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度。
Input
输入文件bookshelf.in:输入从文件中读取,输入共n+1行。
第1行2个整数n和m (1≤m≤n≤100000) 。
接下来n行,每行1个正整数,分别表示每本书的高度(每本书的高度不超过100)。
Output
输出文件bookshelf.out:结果输出到文件中,输出共1行,表示将n本书放入书架后书架的最小总高度。
Samples
3 2
20
10
30
40
Limitation
【样例解释】 将高度是30和20的两本书放在一层,则这层的高度为30,将高度是10的那本书放在另外一层,则这层的高度为10,则书架的总高度为40,满足最小。 【数据范围约定】 每本书的高度为不超过100的正整数。 对于70%的数据,1≤m≤n≤1000。 对于100%的数据,1≤m≤n≤100000。