均分纸牌问题的分析
#include<iostream>
#include<numeric>
//accumulate(arrayName, arrayName + 数组长度, 数组起始位)
using namespace std;
#define max 1000
int pokers[max];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>pokers[i];
}
int sum=accumulate(pokers,pokers+n,0);
int avg=sum/n;
int times=0;
//从第一堆牌开始处理,第一堆牌整好是avg之后开始处理第二堆
for(int i=0;i<n;i++)
{
if(pokers[i]!=avg)
{
pokers[i+1]-=avg-pokes[i];
times++;
}
}
cout<<times<<endl;
return 0;
}