#include<bits/stdc++.h>
using namespace std;
long long  a[300107],l[300109],r[300103],pos[300105];
long long ans=0,ans1=0;
stack <long long> st;
int n;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    //    pos[a[i]]=l[i]=r[i]=i;
    }
    //a[0]=a[n-1]=n-1;
    for(int i=1;i<=n;i++){
        while(!st.empty() && a[ st.top() ] >= a[i])
            st.pop();
        if(st.empty())
            l[i]=0;
        else
            l[i]=st.top();
        st.push(i);
    }
    while(!st.empty()){
        st.pop();
    }
    for(int i = n;i>=1;i--){
        while(!st.empty() && a[ st.top() ] >= a[i])
            st.pop();
        if(st.empty())
            r[i]=n+1;
        else
            r[i]=st.top();
        st.push(i);
    }
    for(int i=1;i<=n;i++)
        ans+=(r[i]-i)*(i-l[i])*a[i];
    cout<<ans;
    return 0;
}
