BNU Box of Bricks

http://www.bnuoj.com/bnuoj/problem_show.php?pid=1596

这个题一开始以为要求最少移动次数,把我吓到了,原来只要求最少移动几个方块就行了。。这一下就变简单很多了。。

AC代码:
#include<iostream>

#include<cstdio>

#include<algorithm>



using namespace std;



bool cmp(int a, int b)

{

    return a<b;

}



int main()

{

    int n,i,k,sum,p;

    int a[55];

    k = 0;

    while(scanf("%d",&n)&&n)

    {

        k++;

        sum = 0;

        for(i = 0; i < n; i++)

        {

            scanf("%d",&a[i]);

            sum += a[i];

        }

        sum = sum/n;

        sort(a,a+n,cmp);

        p = 0;

        for(i = 0; i < n; i++)

        {

            if(a[i] < sum)

            {

                p+=(sum-a[i]);

            }

            else

            {

                break;

            }

        }

        printf("Set #%d\n",k);

        printf("The minimum number of moves is %d.\n\n",p);

    }



    return 0;

}



 

你可能感兴趣的:(BO)