40分求调
查看原帖
40分求调
915921
DougNo1楼主2024/9/8 15:51
#include <bits/stdc++.h>
using namespace std;
int a[105];
int main(){
    int n,sum=0,x=-1,y=-1,ans=0;
    cin>>n;
    for(int i=1;i<=n;i++){
		cin>>a[i];
		sum+=a[i];
    } 
    sum/=n;
    for(int i=1;i<=n;i++) a[i]=a[i]-sum;
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++){
		if(a[i]<0 && a[i+1]>=0) x=i;
		if(a[i]>0 && a[i-1]<=0){
			y=i; 
			break;
		} 
    }
    if(x==-1 && y==-1){
		cout<<0;
		return 0;
    }
    while(x>0 || y<=n){
		if(a[y]>abs(a[x])){
			a[y]+=a[x];
			a[x--]=0;
		}else if(a[y]==abs(a[x])){
			a[y++]=a[x--]=0;
		}else{
			a[x]+=a[y];
			a[y++]=0;
		}
		ans++;
	}
	cout<<ans;
	return 0;
}

提交记录

帮我的必被我关注!

2024/9/8 15:51
加载中...