[卿学姐带我飞]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 }