UVA - 591 Box of Bricks (水題)

給你n堆高度不一的磚塊,問你把這n堆磚塊變成相同高度,需要最少移動的磚塊數。

開始題目沒仔細看,以爲照樣是求變成相同高度的最小移動次數,這題只要求出平均值,然後累加有多少大於這個均值的即可,因爲大於平均值的必定會移動去填滿那些小於平均值的堆。

#include<cstdio>
#include<cstring>
char s[10000];
int main()
{
    int n,i,j,k=1,a[200],sum,ans;
    while(~scanf("%d",&n),n)
    {
        sum=ans=0;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        sum/=n;
        for(i=0;i<n;i++)
        {
            if(a[i]>sum) ans+=a[i]-sum;
        }
        printf("Set #%d\nThe minimum number of moves is %d.\n\n",k++,ans);
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章