'use strict';

const lines = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split('\n');
const N = Number(lines[0]);
const A = lines[1].split(' ').map(Number);

let indices = [];
for (let i = 0; i < N; i++) {
	indices[indices.length] = i;
}

indices = indices.sort((a, b) => A[a] - A[b]);

let sum = 0;

let que = [[0, N - 1, 0]];
while (que.length > 0) {
	let lri = que.shift(),
		left = lri[0],
		right = lri[1],
		index = lri[2];
	
	if (left > right) continue;
	
	let i = index;
	while (indices[i] < left || indices[i] > right) i++;
	
	sum += A[indices[i]] * (indices[i] - left + 1) * (right - indices[i] + 1);
	que[que.length] = [left, indices[i] - 1, i + 1];
	que[que.length] = [indices[i] + 1, right, i + 1];
}

console.log(sum);