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

using namespace std;

const int INF = 1e8;

int n;

int calc(vector<int> &v, bool up) {
    int res = 0, prev = v[0];
    for (int i = 1; i < n; ++i, up = !up) {
        if (up && v[i] <= prev) {
            ++res;
            prev = INF;
        } else if (!up && v[i] >= prev) {
            ++res;
            prev = -INF;
        } else {
            prev = v[i];
        }
    }
    return res;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> n;
    vector<int> v(n);
    for (int &i : v)
        cin >> i;
    
    int res = calc(v, true);
    cout << min(res, calc(v, false)) << '\n';
}