[恢]hdu 2088
2011-12-20 03:35:04
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2088
题意:有n堆砖头,分别有a[i]块砖。问至少要移动多少块,能让他们全都一样高。
mark:先求平均高度,然后逐个求差后,除以2。
代码:
# include <stdio.h>
int a[60] ;
int abs(int n){return n<0?-n:n;}
int main ()
{
int n, i, sum, ans, nCase = 1 ;
while (~scanf ("%d", &n) && n)
{
sum = 0 ;
for(i = 0 ; i < n ; i++)
{
scanf ("%d", &a[i]) ;
sum += a[i] ;
}
ans = 0 ;
for (i = 0 ; i < n ; i++)
ans += abs(a[i]-sum/n) ;
if (nCase++ != 1) printf ("\n") ;
printf ("%d\n", ans/2) ;
}
return 0 ;
}