P1031
均分纸牌
※第一堆牌相差的牌只能由第二堆牌承担(给予或索要)
※第一堆牌都达到要求了又去动它干嘛
※可以直接删除第一堆牌
(因为
1.已经完成目标
2.无论怎么移动都只能从第二堆里找
所以不要去管它)
※第二堆牌神奇的变成了第一堆牌
※重复上述操作
※如果当前牌没操作就已经达标了跳过啊~
※下副牌变成负数又怎么样?
※ ∵ 上述步骤皆可逆
※ ∴ 证毕(逃
Code:
#include<bits/stdc++.h>
using namespace std;
int n,a[101],mid,all,ans;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),all+=a[i];
all/=n;
for(int i=1;i<=n;i++)if(a[i]-all)
a[i+1]+=a[i]-all,ans++;
printf("%d",ans);
return 0;
}