这两道是同一道题,只是区别在输出格式。
算出需要移动的方块个数(相差平均数的总个数)即可,需要注意的是每两个输出之间有一个空行。
2088就比较套路,最后一组输出没有空行。
hdu1326
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #define N 55 int a[N]; using namespace std; int main() { int n,flag=0,ave,sum; while(scanf("%d",&n)&&n) { ave=0,sum=0; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); ave+=a[i]; } ave/=n; for(int i=1;i<=n;i++) { if(a[i]<ave) { sum+=ave-a[i]; } } printf("Set #%d\n",++flag); printf("The minimum number of moves is %d.\n\n",sum); } return 0; }
|
hdu 2088
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #define N 55 int a[N]; using namespace std; int main() { int n,ave,sum,flag=0; while(scanf("%d",&n)&&n) { ave=0,sum=0; if(flag++) printf("\n"); memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); ave+=a[i]; } ave/=n; for(int i=1;i<=n;i++) { if(a[i]<ave) { sum+=ave-a[i]; } } printf("%d\n",sum); } return 0; }
|
最后更新时间:
梦想依在 人生正当年