#include<bits/stdc++.h> using namespace std; int tab[50005]; int f(int k, int n){ int w=0; int k1=1; if(k==1)k1=0; for(int i=1;i<n;i++){ if(k==0){ if(tab[i]>=tab[i-1]){ w++; //tab[i]=tab[i+1]-1; i++; swap(k1, k); } swap(k, k1); //cout<<" 0 "<<w<<" "<<i<<" "; continue; } if(k==1){ if(tab[i]<=tab[i-1]){ i++; //tab[i]=tab[i+1]+1; w++; swap(k1, k); } //cout<<" 1 "<<w<<" "<<i<<" "; swap(k1, k); } } //cout<<"\n"; return w; } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>tab[i]; } int w=0; int k=0; cout<<min(f(0, n), f(1, n))<<"\n"; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include<bits/stdc++.h> using namespace std; int tab[50005]; int f(int k, int n){ int w=0; int k1=1; if(k==1)k1=0; for(int i=1;i<n;i++){ if(k==0){ if(tab[i]>=tab[i-1]){ w++; //tab[i]=tab[i+1]-1; i++; swap(k1, k); } swap(k, k1); //cout<<" 0 "<<w<<" "<<i<<" "; continue; } if(k==1){ if(tab[i]<=tab[i-1]){ i++; //tab[i]=tab[i+1]+1; w++; swap(k1, k); } //cout<<" 1 "<<w<<" "<<i<<" "; swap(k1, k); } } //cout<<"\n"; return w; } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>tab[i]; } int w=0; int k=0; cout<<min(f(0, n), f(1, n))<<"\n"; return 0; } |