现在的位置: 首页 > 综合 > 正文

HDU 2088 Box of Bricks

2013年09月28日 ⁄ 综合 ⁄ 共 670字 ⁄ 字号 评论关闭

题目地址:

http://acm.hdu.edu.cn/showproblem.php?pid=2088

 

有一排高度不同的砖块,求最少搬动多少块可以使这一排砖块的高度一样(给的数据一定满足可以一样高)

 

求出这个平均高度,然后大于这个高度的减去平均高度 求和即为所求。

 

 

代码如下:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
using namespace std;

/*
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
*/

int xh[55];

int main()
{
    int n,sum,i,a,min,aver,cc=0;
    while(cin>>n,n)
    {
        sum=min=0;
        for(i=0;i<n;i++)
        {
            scanf("%d",&xh[i]);
            sum+=xh[i];
        }
        if(cc!=0)
            printf("\n");
        aver=sum/n;//平均高度
        for(i=0;i<n;i++)
        {
            if(xh[i]>aver)//大于平均高度的求和
                min+=xh[i]-aver;
        }
        printf("%d\n",min);
        cc++;
    }
    return 520;
}

 

抱歉!评论已关闭.