https://vijos.org/p/1123
求出总和的平均数,每个A[i]减去平均数,逐步将A[i]变为0,怎么变为0?将A[i]的所有牌移动到A[i+1],如果本身是0,则不需要移动
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define ms(i,j) memset(i, j, sizeof(i));
using namespace std;
int a[105];
int main ()
{
int n;
int pj = 0;
scanf("%d", &n);
for (int i=1;i<=n;i++)
{
scanf("%d", &a[i]);
pj += a[i];
}
pj /= n;
for (int i=1;i<=n;i++)
{
a[i] -= pj;
}
int step = 0;
for (int i=1;i<n;i++)
{
if (a[i]==0) continue;
step++;
a[i+1] += a[i];
a[i] = 0;
}
printf("%d\n", step);
return 0;
}