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