从最后一个开始补,不够向前面借,多了分给前面的,只要哪个不为零,就加一就是了
#include <iostream> #include<bits/stdc++.h> using namespace std; #define maxx 100005 int main() { int a[maxx]; int n; cin>>n; int sum=0; int res=0; for(int i=1;i<=n;i++) { cin>>a[i]; sum=sum+a[i]; } int avg=sum/n; for(int i=n;i>=1;i--) { int z=a[i]-avg; if(z!=0) { a[i-1]=a[i-1]+z; res++; } } cout<<res; }