HDU 1034

模拟题

怎么给稍微麻烦一点

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 int n,cnt;
 5 int a[10000];
 6 bool flag;
 7 int main()
 8 {
 9     while(~scanf("%d",&n)&&n)
10     {
11         for(int i=1;i<=n;i++) scanf("%d",&a[i]);
12         cnt=0;
13         flag=1;
14         while(flag)
15         {
16             cnt++;
17             for(int i=1;i<=n;i++) a[i]/=2;
18             int tmp=a[n];
19             for(int i=n;i>1;i--) a[i]+=a[i-1];
20             a[1]+=tmp;
21             for(int i=1;i<=n;i++) if(a[i]&1) a[i]++;
22             flag=0;
23             for(int i=2;i<=n;i++)
24             {
25                 if(a[i-1]!=a[i]) {
26                     flag=1; break;
27                 }
28             }
29         }
30         printf("%d %d
",cnt,a[1]);
31     }
32 }
我自倾杯,君且随意
原文地址:https://www.cnblogs.com/nicetomeetu/p/5446934.html