HDU1326:Box of Bricks

37 阅读1分钟

题意:怎样移动最少的方块让所有的方块一样高,求平均一下然后分别算出差值相加就可以了,很水。

#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;
}


\