Từ Trường Đại học Hoa Lư, Ninh Bình, Trường THPT chuyên Lương Văn Tụy, Ninh Bình
Thông tin
include <bits/stdc++.h>
define ll long long
define ii pair<ll,ll>
define N 1000005
using namespace std; ll st[N],res,n,m,l[N],r[N],F[N],A[N],cc,top; int main() { freopen("GCP.inp","r",stdin); freopen("GCP.out","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++) cin>>A[i];
top=0;
for (int i=1;i<=n;i++)
{
while(top>0 && A[st[top]]<=A[i]) top--;
l[i]=(top>0 ? st[top] : 0);
st[++top] = i;
}
top=0;
for(int i=n;i>= 1;i--)
{
while(top>0 && A[st[top]]<A[i]) top--;
r[i]=(top>0 ? st[top] : n + 1);
st[++top] = i;
}
ll res=n*(n - 1)/2;
for(int i=1;i<=n;i++)
{
ll l1=i-l[i];
ll r1=r[i]-i;
cc+=(l1-1)*(r1-1);
}
cout<<res-cc;
}