#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"; } |
English