题目链接 :https://www.luogu.org/problemnew/show/P1031
/*
模拟数量多的纸牌的转移过程
9 8 17 6 知道每堆纸牌最终的数量是10
*/
#include <iostream>
using namespace std;
const int MAX_N = 100;
int book[MAX_N], N, sum;
void solve () {
int ave = sum / N;
int i, ans = 0;
for (i = 0; i < N; i++) book[i] -= ave; // 与平均数的差
for (i = 0; i < N; i++) {
if (book[i] == 0) continue; // 说明不用在计算这一次的次数
book[i + 1] += book[i]; // 否则的话就需要把这次欠下的差值加到下一个数上边同时转移次数加一
ans ++;
}
cout << ans << endl;
}
int main() {
cin >> N;
int i;
for (i = 0; i < N; i++) {
cin >> book[i];
sum += book[i];
}
solve ();
return 0;
}