1 #include <cstdio>
2 #include <cstring>
3 #include <string>
4 #include <iostream>
5 #define N 80007
6 #define LL long long
7 using namespace std;
8 LL h[N], n, ans;
9 struct arr
10 {
11 int x, hi;
12 }f[N];
13
14 LL read()
15 {
16 LL s = 0;
17 char ch = getchar();
18 while (ch < '0' || ch > '9') ch = getchar();
19 while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
20 return s;
21 }
22
23 int main()
24 {
25 freopen("badhair.in", "r", stdin);
26 freopen("badhair.out", "w", stdout);
27 n = read();
28 for (int i = 1; i <= n; i++)
29 h[i] = read();
30 int head = 1, tail = 0;
31 f[++tail].hi = h[n];
32 for (int i = n - 1; i >= 1; i--)
33 {
34 int l = 0, ac = 0;
35 for (int j = tail; j >= head; j--)
36 if (h[i] > f[j].hi)
37 {
38 ac += f[j].x + 1;
39 l++;
40 }
41 else break;
42 tail = tail - l + 1;
43 f[tail].hi = h[i];
44 f[tail].x = ac;
45 ans += ac;
46 }
47 cout << ans;
48 fclose(stdin);
49 fclose(stdout);
50 }