uva 591 - Box of Bricks

    技术2025-01-26  20

          这个题的题意很简单,就是移动最少的砖让各个栈高度相同。刚开始没仔细看题,以为可以将一个栈的砖全那光,那样的话,就需要将栈按砖块多少排序,在一个个的试。但题目不让这样,那很简单了,先求平均数,然后把高于平均数的加起来,和就是结果,注意,一个Case后要空一行

    #include<iostream> #include<cstdio> using namespace std; int Digit[55]; int main() { int n, cnt = 1, sum, hight, moves; while(cin>>n){ if(!n) break; sum = moves = 0; for(int i = 0; i < n; cin>>Digit[i++], sum += Digit[i - 1]); hight = sum / n; for(int i = 0; i < n; i++){ if(hight > Digit[i]) moves += (hight - Digit[i]); } printf("Set #%d/nThe minimum number of moves is %d./n/n", cnt++, moves); } return 0; }  

    最新回复(0)