import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import gcd,log input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) mod = 998888353 N = int(input()) A = li() pos = [-1 for i in range(N)] for i in range(N): pos[A[i]] = i L,R = pos[0],pos[0] res = N for i in range(1,N): pre = (L+1)*(N-R) L = min(L,pos[i]) R = max(R,pos[i]) new = (L+1)*(N-R) res += i * (pre-new) print(res)