bnuoj_4047 魔方系列——相同高度

来源:互联网 发布:c 实现灰鸽子源码 编辑:程序博客网 时间:2024/05/20 06:26

 DreamFox经常喜欢把一堆魔方垒成一堵墙,如图。 


很明显这看起来很不像一堵墙……墙一般来说是相同高度的,就是说,下面的图应该是下面这样的 


所以DreamFox想把原来的“墙”改造成相同高度的墙。但是大家都知道他懒,他希望用最少的移动步数来完成这件事。所以又得拜托你来帮忙写程序解决了。 

input:

 多组数据,数据以0为停止。 
第1行:N,代表N排(N<=500)。 
第2行,N个数,Mi代表每排的魔方数。(0<=Mi<=500)

output:

 一个整数,最少要移动多少步。如果不能改造成高度相同的墙,输出“Impossible”。

sample:

65 2 4 1 7 532 4 50
5Impossible
#include<stdio.h>int a[500];int main(){int n;while(scanf("%d",&n)&&n){int sum,s;sum=0;for(int i=0;i<n;i++){ scanf("%d",&a[i]);     sum+=a[i];}if(sum%n!=0){printf("Impossible\n");continue;}s=0;sum/=n;for(int i=0;i<n;i++){if(a[i]>sum)s+=a[i]-sum;}printf("%d\n",s);}return 0;}


0 0