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