当前位置: 首页 > 工具软件 > bookshelf > 使用案例 >

[慈溪2012]书架(bookshelf)

汪理
2023-12-01

题目描述

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

教室的书架是一层一层叠起来的,每一层最多可以放m本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为0。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这n本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度

输入

输入共n+1行。

第1行2个整数n和m (1≤m≤n≤100000) 。

接下来n行,每行1个正整数,分别表示每本书的高度(每本书的高度不超过100)。

输出

输出共1行,表示将n本书放入书架后书架的最小总高度。

样例输入

3 2
20
10
30

样例输出

40

代码

#include<bits/stdc++.h>
using namespace std;
bool c(int a,int b){return a>b;}
int main(){
    int n,a[100000],m,s=0;cin>>n>>m;
    for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n,c);
    for(int i=0;i<n;i++){if(i%m==0){s+=a[i];}}
    cout<<s;
    return 0;}

 类似资料: