3
[NOIP2002 提高组] 均分纸牌
思路
考虑第一堆牌只能与第二堆传递,那么可以直接令其变为平均值。然后发现第二堆牌变成了第一堆,一直继续即可。
#include<bits/stdc++.h>
using namespace std;
int n,a[101],sum,t,i;
int main(){
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
sum/=n;
for(i=0;i<n;i++){
if(a[i]!=sum){
a[i+1]+=a[i]-sum;
++t;
}
}
cout<<t<<endl;
return 0;
}