题意:怎样移动最少的方块让所有的方块一样高,求平均一下然后分别算出差值相加就可以了,很水。
#include<iostream>
#include<cstdio>
using namespace std;
int a[100];
int main(){int n,g=1,ju=0;while(scanf("%d",&n)&&n){// if(ju++) printf("\n");printf("Set #%d\n",g++);int sum=0,co=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);sum+=a[i];}// cout<<sum<<endl;int ave=sum/n,te;for(int i=0;i<n;i++){te=ave-a[i];if(te<0) te=-te;co+=te; }printf("The minimum number of moves is %d.\n\n",co/2); }return 0;
}