题目链接:http://vjudge.net/problem/HDU-1326
一堆砖要摆平,问最少移动多少块。刚开始认为是最少要移动多少次,一个水题被写成了贪心题。mdzz。
注意输出还有一个换行!!
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10 11 int main() 12 { 13 int n,num[10010],i,cnt=0; 14 while(~scanf("%d",&n)) 15 { 16 int sum=0,ave,ans=0; 17 if(n==0) break; 18 cnt++; 19 for(i=0;i<n;i++) 20 { 21 scanf("%d",&num[i]); 22 sum+=num[i]; 23 } 24 ave=sum/(n); 25 for(i=0;i<n;i++) 26 if(num[i]<ave) ans+=(ave-num[i]); 27 printf("Set #%d The minimum number of moves is %d. ",cnt,ans); 28 printf(" "); 29 } 30 return 0; 31 }