题解:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N;
cin >> N;
vector<int> cards(N);
int total = 0;
// 读取每堆纸牌的数量,并计算总数
for (int i = 0; i < N; ++i) {
cin >> cards[i];
total += cards[i];
}
// 计算每堆纸牌最终应有的数量
int average = total / N;
int moves = 0;
int extra = 0;
// 依次处理每堆纸牌
for (int i = 0; i < N; ++i) {
// 计算当前堆与平均值的差值
extra += cards[i] - average;
if (extra != 0) {
// 若差值不为 0,则需要移动,移动次数加 1
moves++;
}
}
cout << moves << endl;
return 0;
}