题目描述
blablabla
贪心
样例
输入
4
9 8 17 6
输出
3
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int a[10010];
int main()
{
int n;
cin >> n;
int av = 0, step = 0;
for(int i = 1; i <= n; i++) cin >> a[i], av += a[i]; //av是现在总牌数(不要不对劲)
av /= n; //平均牌数
for(int i = 1; i <= n; i++) a[i] -= av; //每堆差多少
int x = 1, y = n;
while(a[x] == 0 && x < n) x++; ///
while(a[y] == 0 && y > 1) y--; ///舍零
while(x < y){
a[x + 1] += a[x]; //前一堆移到后一堆上
a[x] = 0;
step++; x++; //记数,继续
while(a[x] == 0 && x < y) x++; //再舍零
}
cout << step << endl;
return 0;
}