#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std ;
#define MAX 100001
int N,arr[MAX],st[4*MAX],ans[MAX];
inline void sc(int &a)
{
register int c;
a = 0;
do c = getchar_unlocked(); while(c < '0');
do{
a = (a << 1) + (a << 3) + c - '0';
c = getchar_unlocked();
}while(c >= '0');
}
inline void buildst(int idx,int ss,int se){
if(ss == se){
st[idx] = arr[ss] ;
return ;
}
int mid = (ss+se)/2;
buildst(2*idx,ss,mid);
buildst(2*idx+1,mid+1,se);
st[idx] = max(st[2*idx],st[2*idx+1]);
}
inline int query(int idx,int ss,int se,int l,int r){
if(l > se || r < ss)
return 0;
if(l<=ss && se<=r)
return st[idx] ;
int mid = (ss+se)/2;
return max(query(2*idx,ss,mid,l,r),query(2*idx+1,mid+1,se,l,r));
}
inline int cal(int low,int high,int key){
int mid ;
while(low<=high){
mid = (low+high)/2;
int f1 = query(1,1,N,low,mid);
if(f1<key && (mid == N || (query(1,1,N,low,mid+1)>=key)))
return mid ;
else if(f1<key)
low = mid+1;
else
high = mid-1;
}
return 0;
}
int main(){
sc(N);
for(int i=1;i<=N;i++)
sc(arr[i]) ;
buildst(1,1,N);
long long x = 0;
for(int i=1;i<=N;i++){
ans[i] = cal(i+1,N,arr[i]);
if(ans[i]!=0)
ans[i] -= i;
x += ans[i];
}
printf("%lld\n",x);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkIDsKCiNkZWZpbmUgTUFYIDEwMDAwMQppbnQgTixhcnJbTUFYXSxzdFs0Kk1BWF0sYW5zW01BWF07CmlubGluZSB2b2lkIHNjKGludCAmYSkKewogICAgcmVnaXN0ZXIgaW50IGM7CiAgICBhID0gMDsKICAgIGRvIGMgPSBnZXRjaGFyX3VubG9ja2VkKCk7IHdoaWxlKGMgPCAnMCcpOwogICAgZG97CglhID0gKGEgPDwgMSkgKyAoYSA8PCAzKSArIGMgLSAnMCc7CgljID0gZ2V0Y2hhcl91bmxvY2tlZCgpOwogICAgfXdoaWxlKGMgPj0gJzAnKTsKfQoKaW5saW5lIHZvaWQgYnVpbGRzdChpbnQgaWR4LGludCBzcyxpbnQgc2UpewoKCWlmKHNzID09IHNlKXsKCQlzdFtpZHhdID0gYXJyW3NzXSA7CgkJcmV0dXJuIDsKCX0KCWludCBtaWQgPSAoc3Mrc2UpLzI7CglidWlsZHN0KDIqaWR4LHNzLG1pZCk7CglidWlsZHN0KDIqaWR4KzEsbWlkKzEsc2UpOwoJc3RbaWR4XSA9IG1heChzdFsyKmlkeF0sc3RbMippZHgrMV0pOwp9CgppbmxpbmUgaW50IHF1ZXJ5KGludCBpZHgsaW50IHNzLGludCBzZSxpbnQgbCxpbnQgcil7CgoJaWYobCA+IHNlIHx8IHIgPCBzcykKCQlyZXR1cm4gMDsKCWlmKGw8PXNzICYmIHNlPD1yKQoJCXJldHVybiBzdFtpZHhdIDsKCWludCBtaWQgPSAoc3Mrc2UpLzI7CglyZXR1cm4gbWF4KHF1ZXJ5KDIqaWR4LHNzLG1pZCxsLHIpLHF1ZXJ5KDIqaWR4KzEsbWlkKzEsc2UsbCxyKSk7Cn0KCmlubGluZSBpbnQgY2FsKGludCBsb3csaW50IGhpZ2gsaW50IGtleSl7CgoJaW50IG1pZCA7Cgl3aGlsZShsb3c8PWhpZ2gpewoJCW1pZCA9IChsb3craGlnaCkvMjsKCQlpbnQgZjEgPSBxdWVyeSgxLDEsTixsb3csbWlkKTsKCQlpZihmMTxrZXkgJiYgKG1pZCA9PSBOIHx8IChxdWVyeSgxLDEsTixsb3csbWlkKzEpPj1rZXkpKSkKCQkJcmV0dXJuIG1pZCA7CgkJZWxzZSBpZihmMTxrZXkpCgkJCWxvdyA9IG1pZCsxOwoJCWVsc2UKCQkJaGlnaCA9IG1pZC0xOwkKCX0KCXJldHVybiAwOwp9CgppbnQgbWFpbigpewoKCXNjKE4pOwoJZm9yKGludCBpPTE7aTw9TjtpKyspCgkJc2MoYXJyW2ldKSA7CgkKCWJ1aWxkc3QoMSwxLE4pOwoJbG9uZyBsb25nIHggPSAwOwoJZm9yKGludCBpPTE7aTw9TjtpKyspewoJCWFuc1tpXSA9IGNhbChpKzEsTixhcnJbaV0pOwoJCWlmKGFuc1tpXSE9MCkKCQkJYW5zW2ldIC09IGk7CgkJeCArPSBhbnNbaV07CQoJfQoJcHJpbnRmKCIlbGxkXG4iLHgpOwoJcmV0dXJuIDA7Cn0=