#include <cstdio>
#include <stack>
using namespace std;
stack<int> s;
int main()
{
int n;
scanf("%d", &n);
long long sum = 0;
for(int i =0;i<n;i++)
{
int now;
scanf("%d",&now);
if(s.empty())
{
s.push(now);
}
else
{
while(!s.empty() && (((int)s.top()) <= now))
{
s.pop();
}
s.push(now);
sum += (int)s.size()-1;
}
}
printf("%lld",sum);
#include <stack>
using namespace std;
stack<int> s;
int main()
{
int n;
scanf("%d", &n);
long long sum = 0;
for(int i =0;i<n;i++)
{
int now;
scanf("%d",&now);
if(s.empty())
{
s.push(now);
}
else
{
while(!s.empty() && (((int)s.top()) <= now))
{
s.pop();
}
s.push(now);
sum += (int)s.size()-1;
}
}
printf("%lld",sum);
}
// 当栈为空时不能判断s.top() 否则出错 因此需要先判断栈是否为空