题目描述
乐乐是一个零食达人,他制作了 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 n和k,分别表示零食的种类数和一个人最多能选择零食的数量。
第二行, n n n 个正整数,表示每种口味零食的数量。
输出格式
一个正整数,为分完所有零食至少需要的朋友数。
输入样例1
5 3
1 2 3 4 5
输出样例1
5
样例1解释
第1个人选择第1种、第2种、第5种,记为 ( 1 , 2 , 5 ) (1,2,5) (1,2,5),第二个人选择 ( 2 , 4 , 5 ) (2,4,5) (2,4,5),第三、四、五个人均选择 ( 3 , 4 , 5 ) (3,4,5) (3,4,5),可以分完所有零食。
输入样例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
1≤k≤n≤100,1≤ai≤100
代码
#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;
}