题目保证有解,先求砖块数的平均数。
再把多的部分移到缺的地方,答案就是多的部分的和。
#include<cstdio>
int n,ans,sum,cas=1,avg,i,h[55];
int main()
{
    while(~scanf("%d",&n)&&n)
    {
        sum=ans=0;
        for(i=0;i<n;i++) scanf("%d",&h[i]),sum+=h[i];
        avg=sum/n;
        for(i=0;i<n;i++)
            if(h[i]>avg) ans+=h[i]-avg;
        printf("Set #%d\nThe minimum number of moves is %d.\n\n",cas++,ans);
    }
    return 0;
}原文:http://blog.csdn.net/u011032846/article/details/45442105