[P2866]悬关(https://www.luogu.com.cn/problem/P2866#submit)
#include<bits/stdc++.h>
using namespace std;
vector<int> a;
vector<int> f;
int n;
int main(){
cin>>n;
a.resize(n+5);
f.resize(n+5);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
stack<int> s;
for(int i=1;i<=n;i++){
while(!s.empty() && a[i] > a[s.top()]){
f[s.top()]=i;
s.pop();
}
s.push(i);
}
int cnt=0;
for(int i=1;i<=n;i++) {
if(f[i]==0){
cnt+=n-i;
continue;
}
cnt+=f[i]-i-1;
}
cout<<cnt;
}