HDU 1034 Candy Sharing Game

 1 #include <iostream>
 2 #include <vector>
 3 
 4 using namespace std;
 5 
 6 int main(){
 7     int n;
 8     while(cin >> n && n){
 9         vector<int> a(n);
10         for(int  i = 0; i < n; i ++ ) cin >> a[i];
11         int cnt = 0;
12         while(1){
13             int k;
14             for(k = 0; k < n; k ++ )
15                 if(a[k%n] != a[(k+1)%n]) break;
16             if(k >= n ) break;
17             cnt++;
18             int tmp = a[n-1]/2;
19             for(int i = n-1; i > 0 ; i -- ){
20                 a[i] /= 2;
21                 a[i] += a[i-1]/2;
22                 if(a[i]&1) a[i]++;
23             }
24             a[0] = a[0]/2+tmp;
25             if(a[0]&1) a[0]++;
26         }
27         cout<<cnt<<" "<<a[0]<<endl;
28     }
29 
30     return 0;
31 }
原文地址:https://www.cnblogs.com/xiongqiangcs/p/3014188.html