[卿学姐带我飞]Codeforces Round #410 (Div. 2)_C - Mike and gcd problem

一开始gcd里面gcd(b,a%b)的gcd都没写,还过来39组数据,找了半天错,蠢死了。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=100005;
 4 int arr[maxn];
 5 int gcd(int a,int b){
 6     if(b==0)
 7         return a;
 8     else return gcd(b,a%b);
 9 }
10 int main()
11 {
12     int n; 
13     scanf("%d",&n);
14     for(int i=0;i<n;i++){
15         scanf("%d",&arr[i]);
16     }
17     int tem=0;
18     for(int i=0;i<n;i++){
19         tem=gcd(tem,arr[i]);
20     }
21     if(tem>1){
22         printf("YES\n");
23         printf("0\n");
24         return 0;
25     }
26     int ans=0;
27     for(int i=0;i<n;i++){
28         if(arr[i]%2==1){
29             if(arr[i+1]%2==1){
30                 ans+=1;
31             }
32             else ans += 2;
33             arr[i]=0;arr[i+1]=0;
34         }
35     }
36     printf("YES\n"); 
37     printf("%d\n",ans);
38     return 0;
39 } 

 

posted @ 2017-05-04 21:28  zeusbrav  阅读(113)  评论(0编辑  收藏  举报