30分求助
查看原帖
30分求助
1438571
Galaxy__H3356楼主2024/10/28 21:15
#include<bits/stdc++.h>
using namespace std;

int n;
int l,r;
bool flag=true;
int ans;
int jia,jian;

int main(){
	cin>>n;
	int s[n+1];
	int egg;
	
	for(int i=1;i<=n;i++) {
		cin>>s[i];
		egg+=s[i];
	}
	int ave=(egg+1)/n;
	sort(s+1,s+1+n);
	cin>>l>>r;
	int ak;
	for(int i=1;i<=n;i++){
		ak=ak+s[i];
	}
	if(ak>r*n||ak<l*n){
		cout<<"-1"<<" ";
		flag=false;
	}
	int temp=0;
	if(flag==true){
		int j=n;
		for(int i=1;i<=n;i++){
			while(s[i]<l&&s[j]>r){
				temp=l-s[i];
				while(s[i]<l&&s[j]>r&&temp>0){
					s[i]++;
					s[j]--;
					temp--;
					ans++;
				}
				if(s[i]==l) continue;
				if(s[j]==r) j--;
			}
		}
		for(int i=1;i<=n;i++){
			int x=1,y=1;
			if(s[i]<l) {
				jia=jia+l-s[i];
			}
			if(s[i]>r) {
				jian=jian+s[i]-r;
			}
		}
		int temp=0;
		if(jia>=jian) temp=jia;
		else temp=jian;
		ans=ans+temp;
		cout<<ans;
	}
	
	return 0;
}
2024/10/28 21:15
加载中...