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
#include<bits/stdc++.h>
using namespace std;

int firstGoingUpErrors=0;
int firstGoingDownErrors=0;

int main()
{
    ios_base::sync_with_stdio(0);

    int n; int a; int prevAFirstDown,prevAFirstUp;
    bool goingUp, goingDown;
    cin>>n;
    cin>>prevAFirstDown;
    prevAFirstUp=prevAFirstDown;
    int result = 0;
    for(int i=0;i<n-1;i++)
    {
        cin>>a;
        if ((a>=prevAFirstDown and i%2==0)or(a<=prevAFirstDown and i%2==1))
        {
            firstGoingDownErrors++;
            if(a>=prevAFirstDown and i%2==0)
                prevAFirstDown=-1000000009;
            else prevAFirstDown=1000000009;
            //cerr<<i<<" downerror"<<endl;
        }    
        else
            prevAFirstDown=a;

        if ((a<=prevAFirstUp and i%2==0)or(a>=prevAFirstUp and i%2==1))
        {
            firstGoingUpErrors++;
            if(a<=prevAFirstUp and i%2==0)
                prevAFirstUp=1000000009;
            else prevAFirstUp=-1000000009;
            //cerr<<i<<" uperror"<<endl;
        }  
        else
        prevAFirstUp=a;
    }
    result = min(firstGoingUpErrors,firstGoingDownErrors);
    cout<<result<<endl;
}

//ud udududud