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

const int MAXN = 5e4 + 99;
const int INF = 1e9;

int n;
int t[MAXN],g[MAXN];
int sum[2],p;

int sgn(int a){
	return (a > 0) - (0 > a);
}

int main(){
	cin >> n;
	sum[0] = sum[1] = 0;

	for(int i = 0; i < n; i++)
		cin >> t[i];

	for(int i = 0; i < n; i++)
		g[i] = t[i];
	p = 1;
	for(int i = 0; i < n - 1; i++){
		if(sgn(g[i] - g[i + 1]) != p){
			g[i + 1] = (-1) * p * INF;
			sum[0]++;
		}
		p *= (-1);
	}

	for(int i = 0; i < n; i++)
		g[i] = t[i];
	p = -1;
	for(int i = 0; i < n - 1; i++){
		if(sgn(g[i] - g[i + 1]) != p){
			g[i + 1] = (-1) * p * INF;
			sum[1]++;
		}
		p *= (-1);
	}
	cout << min(sum[0], sum[1]);
}