#include<bits/stdc++.h>
using namespace std;

int height[2000000];
int br;

int fact(int k){
    int prod=1;
    for(int i=2;i<=k;i++){
        prod*=i;
    }
    return prod;
}

void func(int l,int r){
    if(l>=r)return;
    if(l==r-1){
        br++;
        return;
    }
    vector<int> maxi={l};
    int mbr=1;
    for(int i=l+1;i<=r;i++){
        if(height[i]==height[maxi[0]]){maxi.push_back(i);mbr++;}
        if(height[i]>height[maxi[0]]){maxi={i};mbr=1;}
    }
    br+=(r-l)*mbr-fact(mbr)/2;
    func(l,maxi[0]-1);
    for(int i=1;i<mbr;i++){
        func(maxi[i-1]+1,maxi[i]-1);
    }
    func(maxi[mbr-1]+1,r);
}

int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>height[i];
    }
    func(0,n-1);
    cout<<br<<endl;
    return 0;
}
