思路:
先求出平均数
从左开始往右,如果目前牌总数不0,那么就只能盼望下一堆来牌(正负均是)来抵消,所以步数+1
#include <bits/stdc++.h>
using namespace std;
int n;
const int N=105;
int a[N];
int sum,aver,qsum,cnt;
int main(int argc, char** argv) {
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
aver=sum/n;
qsum=0;//目前牌总数
for(int i=0;i<n;i++){
qsum+=a[i]-aver;
if(qsum) cnt++;//如果总数不为0.步数++
}
cout<<cnt;
return 0;
} 
京公网安备 11010502036488号