#P2518. 书架
书架
题目描述
为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了多年的 本书放到教室的书架上。
教室的书架由多层组成,每层最多可放 本书。每层的高度由该层中最高的那本书决定,若某层不放书,则高度为 。为了使同学们能方便地拿到想要的书,需要让书架的总高度尽可能低。
请编程计算将 本书放在书架上后的最小总高度(计算过程中不考虑书的厚度与书架本身材料的厚度)。
输入格式
第一行包含两个整数 和 ,分别表示书的数量和每层最多可放的书的数量。
接下来 行,每行一个正整数,表示每本书的高度。
输出格式
输出一行,一个整数,表示书架的最小总高度。
样例
3 2
20
10
30
40
7 3
10
20
30
40
50
60
70
120
样例说明
- 样例 1:书的高度分别为 20、10、30,每层最多放 2 本。最优分组:一层放高度为 30 和 20 的书(该层高度 30),另一层放高度为 10 的书(该层高度 10),总高度 30+10=40。
- 样例 2:书的高度分别为 10、20、30、40、50、60、70,每层最多放 3 本。最优分组:一层放 70、60、50(高度 70),一层放 40、30、20(高度 40),一层放 10(高度 10),总高度 70+40+10=120。
数据范围
- 每本书的高度不超过 。
相关
在以下作业中: