帮个忙各位大佬
查看原帖
帮个忙各位大佬
370881
洛谷取名真难楼主2020/8/13 11:01
#include<iostream> 
#include<algorithm>
#include<queue>
using namespace std;
bool cmp(int a,int b){
	return a>b;
}
int main(){
	queue<int>q;
	int m,n;
	int max=0;
	int a[1001]={},b[1001]={},ans=0;
	cin>>m>>n;
	for(int i=0;i<m;i++){
		cin>>a[i];
		ans+=a[i];
	}
	if(n==1){
		cout<<ans;
		return 0;
	}
	sort(a,a+m,cmp);
	for(int i=0;i<m;i++){
		q.push(a[i]);
	}
	for(int i=0;i<n;i++){
		b[i]=q.front();
//		cout<<q.front();
		q.pop();
//		cout<<b[i]<<" "; 
	}
	int i=0,sum=0;
	while(!q.empty()){
		b[i]--;
		if(b[i]==0){
			b[i]=q.front();
			q.pop();
		}
		
		cout<<b[i]<<" ";
		i++;
		if(i%n==0){
			sum++;
			i=0;
		}
		
	}
	for(int i=0;i<n;i++){
		if(b[i]>max){
			max=b[i];
		}
	}
	sum+=max;
//	for(int i=0;i<m;i++){
//		cout<<a[i]<<" ";
//	}
	 
	cout<<sum;
}

无限循环 测试数据 6 30 9 8 7 8 6 6

2020/8/13 11:01
加载中...