#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{
ll x, i, c;
};
node a[500005];
ll ansl[500005], sum=0, ansr[500005];
stack<node> s;
int main(){
ll n;
cin >> n;
for(ll i=0;i<n;i++){
cin >> a[i].x;
a[i].i=i;
a[i].c=1;
}
for(ll i=0;i<n;i++){
while(!s.empty()&&s.top().x<=a[i].x){
sum+=s.top().c;
if(s.top().x==a[i].x){
a[i].c+=s.top().x;
}
s.pop();
}
if(!s.empty()){
sum++;
}
s.push(a[i]);
}
cout << sum;
}

哪个好心人救救我吧 ![]()