第3题-分享零食-2024年下桂城教师信息学比赛

题目描述

乐乐是一个零食达人,他制作了 n n n 种不同口味的零食,每种零食的数量分别是 a 1 , a 2 , . . . , a n a_1, a_2, ..., a_n a1,a2,...,an。他的朋友们知道后,都想来尝一尝这些美味的零食。

但是,品尝美食有一个规则:每个人最多只能选择 k k k 个零食,而且每种零食每个人只能拿一个。乐乐想知道,他至少需要邀请多少个朋友,才能让所有的零食都分完。

输入格式

第一行,两个正整数 n 和 k n和k nk,分别表示零食的种类数和一个人最多能选择零食的数量。

第二行, n n n 个正整数,表示每种口味零食的数量。

输出格式

一个正整数,为分完所有零食至少需要的朋友数。

输入样例1

5 3
1 2 3 4 5

输出样例1

5

样例1解释

第1个人选择第1种、第2种、第5种,记为 ( 1 , 2 , 5 ) (1,2,5) 125,第二个人选择 ( 2 , 4 , 5 ) (2,4,5) 245,第三、四、五个人均选择 ( 3 , 4 , 5 ) (3,4,5) 345,可以分完所有零食。

输入样例2

3 2
1 2 5

输出样例2

5

数据范围

20 % 20\% 20%数据, k = 1 k=1 k=1
100 % 100\% 100%数据, 1 ≤ k ≤ n ≤ 100 , 1 ≤ a i ≤ 100 1 \le k \le n \le 100,1 \le ai \le 100 1kn100,1ai100

代码

#include <iostream>
using namespace std;
int a[105];
int main() {
    int n, k;
    cin >> n >> k;
    int s = 0, maxn = 0;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
        s += a[i];
        maxn = max(maxn, a[i]);
    }
    int ans = (s + k - 1) / k;
    ans = max(ans, maxn);
    cout << ans;

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值