POJ 1477 典型的贪心算法,很水,直接贴代码 PS:注意每组数据之后都有一个空行
#include <stdio.h>
#include <algorithm>
using namespace std;
bool cmp(const int a,const int b) { return a>b; }
int main()
{
int bricks[55];
int n,l=0,i,sum,ave,ans;
while(scanf("%d",&n)==1)
{
if(n==0) break;
l++;sum=0;ans=0;
for(i=1;i<=n;i++){
scanf("%d",&bricks[i]);
sum+=bricks[i];
}
sort(bricks+1,bricks+n+1,cmp);
ave=sum/n;
//printf("ave=%d\n",ave);
for(i=1;i<=n;i++)
if(bricks[i]>ave) ans+=bricks[i]-ave;
printf("Set #%d\n",l);
printf("The minimum number of moves is %d.\n\n",ans);
}
return 0;
}