#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=3e6;
int mx[N],mn[N];
int p1,p2;
int sd[N],sx[N];
int a[N];
map<int,int> w;
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(w[a[i]]==0){
w[a[i]]=i;
}
}
//cout<<w[1]<<endl;
for(int i=1;i<=n;i++){
while(a[i]>=a[mx[p1]]&&p1!=0){
p1--;
}
sd[i]=mx[p1];
mx[++p1]=i;
while(a[i]<=a[mn[p2]]&&p2!=0){
p2--;
}
sx[i]=mn[p2];
mn[++p2]=i;
}
int sum=0;
/*for(int i=1;i<=n;i++){
cout<<sd[i]<<" ";
} cout<<endl;
for(int i=1;i<=n;i++){
cout<<sx[i]<<" ";
}cout<<endl;*/
for(int next=n;next>=1;next--){
int pre=next;
while(a[pre-1]==a[pre]){
pre--;
}
while(sx[pre]>=sd[next]){
int u=pre;
pre=sx[pre];
if(pre==0){
// cout<<00000;
if(w[a[u]]!=0&&w[a[u]]!=u){
//cout<<w[a[u]]<<endl;
pre=w[a[u]];
break;
}else{
break;
}
}
}
sum++;
//cout<<pre<<" "<<next<<endl;
next=pre;
}cout<<sum;
return 0;
}
```为什么老是25分呀,求助