题目大意:有一排高度不同的砖块,求最少搬动多少块可以使这一排砖块的高度一样
解题思路:(给的数据一定满足可以一样高)求出这个平均高度,然后大于这个高度的减去平均高度 求和即为所求。
代码如下:
/*
* 2088_2.cpp
*
* Created on: 2013年8月10日
* Author: Administrator
*/
#include <stdio.h>
int main(){
int n;
int count = 0;
while(scanf("%d",&n)!=EOF,n){
if(count != 0){
printf("\n");
}
count++;
int i,sum = 0,weight[n];
for(i = 0 ; i < n ; ++i){
int a;
scanf("%d",&a);
weight[i] = a;
sum +=a;
}
int average = sum / n;
int min = 0;
for(i = 0 ; i < n ; ++i){
if(weight[i] > average){
min += (weight[i] - average);
}
}
printf("%d\n",min);
}
}