#include<iostream> #include<algorithm> #include<iomanip> using namespace std; int T[100007]; int U[100007]; int A[100007]; int wynA=0; int B[100007]; int wynB=0; int main(){ int n; cin>>n; cin>>T[0]; // wyifowac min i max for (int i=1; i<n; i++){ cin>>T[i]; if (T[i]>T[i-1]) U[i-1]=1; if (T[i]<T[i-1]) U[i-1]=-1; if (T[i]==T[i-1]) U[i-1]=0; } for (int i=0; i<n-1; i++){ if (i%2==0){ A[i]=1; B[i]=-1; } else{ A[i]=-1; B[i]=1; } } //1 -1 1 -1 int z=0; while(z<n-1){ if (U[z]!=A[z]){ wynA++; z+=2; } else{ z++; } } if (T[0]==1000000) wynA++; z=0; while(z<n-1){ if (U[z]!=B[z]){ wynB++; z+=2; } else{ z++; } } if (T[0]==-1000000) wynB++; cout<<min(wynA, wynB)<<"\n"; }
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include<iostream> #include<algorithm> #include<iomanip> using namespace std; int T[100007]; int U[100007]; int A[100007]; int wynA=0; int B[100007]; int wynB=0; int main(){ int n; cin>>n; cin>>T[0]; // wyifowac min i max for (int i=1; i<n; i++){ cin>>T[i]; if (T[i]>T[i-1]) U[i-1]=1; if (T[i]<T[i-1]) U[i-1]=-1; if (T[i]==T[i-1]) U[i-1]=0; } for (int i=0; i<n-1; i++){ if (i%2==0){ A[i]=1; B[i]=-1; } else{ A[i]=-1; B[i]=1; } } //1 -1 1 -1 int z=0; while(z<n-1){ if (U[z]!=A[z]){ wynA++; z+=2; } else{ z++; } } if (T[0]==1000000) wynA++; z=0; while(z<n-1){ if (U[z]!=B[z]){ wynB++; z+=2; } else{ z++; } } if (T[0]==-1000000) wynB++; cout<<min(wynA, wynB)<<"\n"; } |