虽然这是一个很简单的水题,但是没有松哥帮忙还是卡了很久,因为没有做好第一步,题目中是老师先吹哨,然后一圈所有同学同事将自己现有糖的一般分给下一个同学,结束后老师将现手里为奇数的糖的同学再多给一颗糖最后判断每个人的糖是否一样,如果一样结束游戏
1 #include
2 #include
3 #include
4 using namespace std;
5 int num[100001];
6 bool ck(int n){
7 for(int i = 1; i ){
8 if(num[i]!=num[i-1]) return false;
9 }
10 return true;
11 }
12 int main()
13 {
14 int n;
15 while(~scanf("%d",&n))
16 {
17 if(n==0) return 0;
18 for(int i = 0; i "%d",&num[i]);
19 int step = 0;
20 while(1)
21 {
22 if(ck(n)) break;
23 int t;
24 int p = num[n-1]/2;
25 for(int i = 0; i ){
26 t = num[i]/2;
27 num[i] = num[i]/2+p;
28 p = t;
29 if(num[i]%2==1) num[i]++;
30 }
31 step++;
32 }
33 printf("%d %d\n",step,num[0]);
34 }
35 return 0;
36 }