給你n堆高度不一的磚塊,問你把這n堆磚塊變成相同高度,需要最少移動的磚塊數。
開始題目沒仔細看,以爲照樣是求變成相同高度的最小移動次數,這題只要求出平均值,然後累加有多少大於這個均值的即可,因爲大於平均值的必定會移動去填滿那些小於平均值的堆。
#include<cstdio>
#include<cstring>
char s[10000];
int main()
{
int n,i,j,k=1,a[200],sum,ans;
while(~scanf("%d",&n),n)
{
sum=ans=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
sum/=n;
for(i=0;i<n;i++)
{
if(a[i]>sum) ans+=a[i]-sum;
}
printf("Set #%d\nThe minimum number of moves is %d.\n\n",k++,ans);
}
return 0;
}