P1031 [NOIP 2002 提高组] 均分纸牌 题解
Dijkstra_zyl · · 题解
P1031 [NOIP 2002 提高组] 均分纸牌 题解
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int a[110];
signed main(){
int n,cnt = 0,sum = 0; cin >> n;
for(int i = 1;i <= n;i++) cin >> a[i],sum += a[i];
sum /= n;//均值
for(int i = 1;i <= n;i++) a[i] -= sum;
for(int i = 1;i <= n;i++){
if(a[i] == 0) continue;//不用管了
a[i+1] += a[i];//下一项有可能>sum或<sum,但都只用+a[i]就行了
cnt++;//操作次数+1 因为a[i]有正有负 使a[i]变为0
}
cout << cnt;
return 0;
}