题解 P1031 【均分纸牌】

· · 题解

这题我的方法是:

1.算平均数。

2.求每堆纸牌与平均数的关系(多1记为1,少1记为-1)。

3.当q[y](第y堆纸牌与平均数的关系)不等于0时,q[y+1]=q[y+1]+q[y],移动次数加1。

#include <iostream>  
using namespace std;  
int main()  
{ 
int a,p=0,js=0; cin >>a;int q[a];  
for (int y=0;y<a;y++){cin >>q[y]; p+=q[y];} p/=a;  
for (int y=0;y<a;y++)q[y]-=p;  
for (int y=0;y<a;y++) {if (q[y]==0)continue; q[y+1]+=q[y]; js++; }  
cout <<js;  
return 0;
}