UVA-591
题意:求最少要移动多少块使得所有的高度相同。
解题思路:求下平均数,超过的就是要移动的,超过的部分加起来。
/*************************************************************************
> File Name: UVA-591.cpp
> Author: Narsh
>
> Created Time: 2016年07月14日 星期四 09时51分06秒
************************************************************************/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int a[60],n,v,k;
int main () {
int num=0;
while (scanf("%d",&n) && n ) {
v=k=0;
for (int i = 1; i <= n; i++) {
scanf("%d",&a[i]);
v+=a[i];
}
v/=n;
for (int i = 1; i <= n; i++)
if (a[i] > v) k+=a[i]-v;
num++;
printf("Set #%d\n",num);
printf("The minimum number of moves is %d.\n\n",k);
}
}