猪厂周边商城有n种不同的商品,第种商品有g_ i件。现在需要组织一-次卖福袋的促销活动,每个
福袋都要恰好有k件不同种类的商品。求最多能组成多少个福袋。
输入描述:
第一行是2个正整数,表示有商城共N (1<=N<=1000) 种不同商品,每个福袋需要包含
K (1<=K<=N)种不同商品。
第二行是N个正整数,表示商城每种商品的件数。
输出描述:
输出一个整数,表示最多福袋数量。
输入
5 3
1 2 3 4 5
输出
5
#include <stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include <math.h>
using namespace std;
int main(){
int n,k,temp;
cin>>n>>k;
priority_queue<int,vector<int>,less<int>> q;
for(int i=0;i<n;i++){
cin>>temp;
q.push(temp);
}
bool flag=true;
int count=0;
vector<int> v(k);
while(flag){
for(int i=0;i<k;i++){
v[i]=q.top();
if(v[i]<=0){
flag=false;
break;
}
q.pop();
}
if(flag) {
count++;
for(int i=0;i<k;i++){
q.push(v[i]-1);
}
}
}
cout<<count<<endl;
}