均分纸牌问题的分析

#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;
}
 posted on 2020-05-03 11:11  My_serendipity  阅读(235)  评论(0编辑  收藏  举报