蓝桥--分糖果[模拟]
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T124
题目大意:
老师先给n个同学各分偶数个糖果,然后【同时】每个同学将他手中的一半分给左手边的同学。老师将手中为奇数个的同学加一个糖果使其为偶数个糖果。游戏继续进行,直到所有同学手中的糖果数相同。
解题思路:
解题时傻*了,没有考虑到【同时】而是依次累积后再/2,耗时2个小时也是**。
直接暴力模拟。
AC Code:
1 #include<stdio.h> 2 int arr[105],n; 3 int check(const int n) { 4 int i; 5 for(i=1; i<n; i++) 6 if(arr[0]!=arr[i])return 0; 7 return 1; 8 } 9 int main() { 10 int need,j,tem; 11 while(scanf("%d",&n)!=EOF) { 12 need=0; 13 for(j=0; j<n; j++) { 14 scanf("%d",&arr[j]); 15 } 16 17 while(!check(n)) { 18 tem=arr[0]/2; 19 for(j=0; j<n-1; j++) { 20 arr[j]=arr[j]/2+arr[j+1]/2; 21 if(arr[j]&1)need+=1,arr[j]+=1; 22 }; 23 arr[n-1]=arr[n-1]/2+tem; 24 if(arr[n-1]&1)need+=1,arr[n-1]+=1; 25 } 26 printf("%d\n",need); 27 } 28 return 0; 29 }