60求助谢谢
查看原帖
60求助谢谢
1162744
duaneryan楼主2024/11/4 19:33

大概就是用多的补上少的(或者可能是我没有理解题意)

#include<bits/stdc++.h>
using namespace std;
int n,l,r,summ=0,a[50];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		summ+=a[i];
	}
	cin>>l>>r;
	if(summ/n<l || summ/n>r){//判断是否在范围
		cout<<-1;
	}
	sort(a+1,a+n+1);
	summ=0;
	int summ1=0;
	for(int i=1;i<=n;i++){
		if(a[i]<l){//少于范围的总和
			summ+=l-a[i];
		}
		if(a[i]>r){//多于范围的总和
			summ1+=a[i]-r;
		}
	}
	if(summ1>summ){//取更多的输出
		cout<<summ1;
	}
	else{
		cout<<summ;
	}
	return 0;
}

谢谢大佬!!!

2024/11/4 19:33
加载中...