#include<bits/stdc++.h>
using namespace std;
const int ma=5e5+100;
int n;
int h[ma];
int a[ma];
int b[ma];
int ind;
int ans=0;
inline int read()
{
int x=0,f=1;char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int main(){
n=read();
for(int i=1;i<=n;i++) h[i]=read();
a[++ind]=h[1];
for(int i=1;i<=n;i++){
if(ind>=2){
if(a[ind-1]>=a[ind]&&a[ind]>=h[i]){
ind--;
}
else if(a[ind]<h[i]&&a[ind-1]<a[ind]){
ind--;
}
}
if(ind&1&&a[ind]<h[i])a[++ind]=h[i];
else if(ind%2==0 &&a[ind]>h[i]) a[++ind]=h[i];
}
ans=ind;
ind=0;
b[++ind]=h[1];
for(int i=1;i<=n;i++){
if(ind>=2){
if(b[ind-1]>=b[ind]&&b[ind]>=h[i]){
ind--;
}
else if(b[ind]<h[i]&&b[ind-1]<b[ind]){
ind--;
}
}
if(ind&1 && b[ind]>h[i])b[++ind]=h[i];
else if(ind%2==0 &&b[ind]<h[i]) b[++ind]=h[i];
}
ans=max(ans,ind);
cout<<ans;
}
按照自己的想法乱写的,本来以为怎么的都过不了的,但是就AC了