HDU—— 2088 Box of Bricks

来源:互联网 发布:app视频录像软件 编辑:程序博客网 时间:2024/05/20 15:41

题意:Bob有一些砖,他用来摆成N个栈,每个栈的高度不一样,现在他需要将这些栈的高度变成一样,求他最少的移动次数。

解题思路:求出平均值,然后将那些高出平均值的栈高度与平均值作差,将所有差相加既得结果,本题有个非常坑的地方就是第一次输出前不加回车,之后每次的输出前都要加回车,因为这个PE了好几次,无语了。详见代码。

Code:

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int main(){    int N,flag = 0;    while(scanf("%d",&N) && N)    {        if(flag) printf("\n");        flag = 1;        int array[100],sum = 0;        for(int i = 0; i<N; i++)        {            scanf("%d",&array[i]);            sum +=array[i];        }        int cnt = 0;        sum = sum/N;        sort(array,array+N);        for(int i = 0; i < N; i++)        {            if(sum - array[i] <= 0){ printf("%d\n",cnt); break; }            else cnt +=(sum-array[i]);        }    }    return 0;}

0 0
原创粉丝点击