这道题其实就是贪心。可以先算出所有牌的平均值,把每堆比平均值少的或多的牌给下一堆纸牌。
【参考代码】
#include<bits/stdc++.h>
using namespace std;/
int a[101];
int main() {
int n;
scanf("%d",&n);
int sum=0;
for(int i=1; i<=n; i++)
scanf("%d",&a[i]),sum+=a[i];
int p=sum/n;//平均值
int ab=0;
for(int i=1; i<=n; i++) {
if(a[i]==p)
continue;
if(a[i]>p)
a[i+1]+=a[i]-p;
else
a[i+1]-=p-a[i];
ab++;
}
printf("%d",ab);
return 0;
}