不会的看我!!!
2024-01-20 10:22:59
发布于:广东
24阅读
0回复
0点赞
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
const int N = 100001;
int n,sum=0;
int a[N];
int main()
{
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]-=sum;
int cnt=0;
//
int i = 0,j=n;
//过滤左右两边为0的情况
while(a[i]==0 and i<n) i++;
while(a[j]==0 and j>i) j--;
while(i<j)
{
a[i+1]+=a[i];//将第i堆的东西移动到下一堆
a[i]=0;
cnt++;
i++;
//过滤一下产生的0
while(a[i]==0 and i<=j) i++;
}
cout<<cnt;
return 0;
}
这里空空如也
有帮助,赞一个