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

using namespace std;
int a1[50*1000+7];
int a2[50*1000+7];

bool czy_x_wr_y(int x, int y){ // czy x>=y
	if(x==y) return 1;
	if(x>=0 && y<=0) return 1;
	if(x>0 && y>0 && x>y) return 1;
	if(x<0 && y<0 && abs(x)<abs(y) ) return 1;
	return 0;
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int n, x=1000*1000*100;
	cin >> n;
	for(int i=0; i<n; ++i){
		cin >> a1[i]; a2[i] = a1[i];
	}
	int wynik1=0, wynik2=0;

	for(int i=1; i<n; ++i){ //   /\/\/\... nieparz > parz
		if(i%2==1 && czy_x_wr_y(a1[i-1], a1[i]) ){
			++wynik1;
			a1[i] = x;
		}
		if(i%2==0 && czy_x_wr_y(a1[i], a1[i-1]) ){
			++wynik1;
			a1[i] = -x;
		}
	}
	for(int i=1; i<n; ++i){ //   \/\/\/... parz > nieparz
		if(i%2==1 && czy_x_wr_y(a2[i], a2[i-1]) ){
			++wynik2;
			a2[i] = -x;
		}
		if(i%2==0 && czy_x_wr_y(a2[i-1], a2[i]) ){
			++wynik2;
			a2[i] = x;
		}
	}
	cout << min(wynik1, wynik2);
	return 0;
}