传统题 1000ms 128MiB

书架

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了多年的n本书放到教室的书架上。

教室的书架由多层组成,每层最多可放m本书。每层的高度由该层中最高的那本书决定,若某层不放书,则高度为0。为了使同学们能方便地拿到想要的书,需要让书架的总高度尽可能低。

请编程计算将n本书放在书架上后的最小总高度(计算过程中不考虑书的厚度与书架本身材料的厚度)。

输入格式

输入共n+1行。 第一行包含两个整数n和m(1≤m≤n≤100000),分别表示书的数量和每层最多可放的书的数量。 接下来n行,每行一个正整数,表示每本书的高度(每本书的高度不超过100)。

输出格式

输出一行,为书架的最小总高度。

样例输入1

3 2
20
10
30

样例输出1

40

样例说明1

将书按高度从高到低排序为30、20、10。每层最多放2本,最优摆放方式为:

  • 第一层放30和20(最高高度为30)
  • 第二层放10(最高高度为10)

总高度为30 + 10 = 40。

样例输入2

7 3
10
20
30
40
50
60
70

样例输出2

120

样例说明2

将书按高度从高到低排序为70、60、50、40、30、20、10。每层最多放3本,最优摆放方式为:

  • 第一层放70、60、50(最高高度为70)
  • 第二层放40、30、20(最高高度为40)
  • 第三层放10(最高高度为10)

总高度为70 + 40 + 10 = 120。

南海中心学生测试

未认领
状态
已结束
题目
6
开始时间
2025-9-21 0:00
截止时间
2025-10-10 23:59
可延期
24 小时