#include <bits/stdc++.h>
using namespace std;
int n;
int a[200005], l[200005],r[200005], pos[200005];
stack <int> st;
stack <int> stt;
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]] = i;
    }
    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);
    }
    long long ans = 0;
    for(int i = n; i >= 1; --i){
        while(!stt.empty() && a[stt.top()] >= a[i]){
            stt.pop();
        }
        if (stt.empty()){
            r[i] = n + 1;
        }
        else{
            r[i] = stt.top();
        }
        stt.push(i);
    }
    for(int i = 1; i <= n; ++i){
		ans += (r[i] - i) * (i - l[i]) * a[i];
    }
    cout << ans;
    return 0;
}
