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
#include <bits/stdc++.h>
using namespace std;
const int N = 5e4 + 5;
int dp[N][2], odp[N][2], tab[N], n;
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>tab[i];
	}
	dp[1][0]=dp[1][1]=tab[1];
	for(int i=2;i<=n;i++){
		if(tab[i]<dp[i-1][0]){
			odp[i][1]=odp[i-1][0];
			dp[i][1]=tab[i];
		}
		else{
			odp[i][1]=odp[i-1][0]+1;
			dp[i][1]=-1e9;
		}
		if(tab[i]>dp[i-1][1]){
			odp[i][0]=odp[i-1][1];
			dp[i][0]=tab[i];
		}
		else{
			odp[i][0]=odp[i-1][1]+1;
			dp[i][0]=1e9;
		}
	}
	cout<<min(odp[n][0], odp[n][1]);
	return 0;
}