#include
using namespace std;
const int mxN = 1e5;
typedef long long ll;
ll st[mxN+1], l[mxN+1], r[mxN+1], v[mxN+1];
int main()
{
ll sol = 0, n, top = 0 ;
cin>>n;
for(int i = 1;i<=n;i++)
{
cin>>v[i];
while(top > 0 && v[st[top]] < v[i])
r[st[top]] = i, top--;
st[++top] = i;
}
while(top>0) r[st[top]] = n+1, top--;
for(int i = n;i>0;i--)
{
while(top > 0 && v[st[top]] < v[i])
l[st[top]] = i, top--;
st[++top] = i;
}
for(int i = 1;i<=n;i++)
{
ll A = i - l[i];
ll B = r[i] - i;
sol+= v[i] * A*B;
}
cout<