| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
自带翻译的太一君,duang小鲍勃喜欢玩他的积木,他把一块放到另一块上面并且把它们摆成不同的高度“看,我喜欢搭墙”,他告诉他的姐姐爱丽丝,“是的,你应该把所有的积木撘成同样的高度,然后你就能有一座真的墙了”(duang,duang),她回答。在思考了一下后(你妹,这还要思考),鲍勃认为她是对的。所以他开始重新搭建,一个接一个,然后所有的积木都等高了。但是因为鲍勃很懒所以他想移动最小数量的积木完成。你能帮助他么?
输入:
输入包括几个集合。每个集合以一个数字n开始,n为鲍勃搭建的积木座数,接下来数行包括n个数字,每个代表每一座的高度hi。
(1 <= n <= 50 and 1 <= hi <= 100)积木总数需要能被座数整除,因此只要重新把积木搭成相同的高度就行了。n=0时结束,这个集合不需要被处理。
输出:
对于每一个集合,首先输出集合数,方式参照例子。然后输出一行"The minimum number of moves is k.",k是将积木撘成同一高度的最小的次数。
注意:每次计算完后空出一行。
#include<iostream>
using namespace std;
int main()
{
int n,fun[200],t ,w=0;
while (scanf_s("%d", &n) && n)
{
w++;
int flag = 0, sum = 0;
for (int i = 0; i < n; i++)
{
scanf_s("%d", &fun[i]);
sum += fun[i];
}
t = sum / n;
for (int u = 0; u < n; u++)
{
if (fun[u]>t)flag += (fun[u] - t);
}
if(w>1)printf("\n");
printf("Set #%d\nThe minimum number of moves is %d.\n", w, flag);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator