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
#include <iostream>

#define debug if (0) std::cout

constexpr int N = 5e4 + 1, INF = 1e9;
int diff[N], s[N];
int n, l, r;

int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cin >> n;
    for (int i = 1; i <= n; i++) {
        std::cin >> s[i];
        diff[i] = s[i] - s[i-1];
    }
    for (int i = 2; i <= n; i++) {
        if (i&1) {
            if (diff[i] <= 0) {
                l++;
                diff[i+1] = -INF;
            }
        } else {
            if (diff[i] >= 0) {
                l++;
                diff[i+1] = INF;
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        diff[i] = s[i] - s[i-1];
    }
    for (int i = 2; i <= n; i++) {
        if (i&1) {
            if (diff[i] >= 0) {
                r++;
                diff[i+1] = INF;
            }
        } else {
            if (diff[i] <= 0) {
                r++;
                diff[i+1] = -INF;
            }
        }
    }
    std::cout << std::min(l, r) << '\n';
}