#include <bits/stdc++.h>
#define int long long
using namespace std;
#define lowbit(x) (x & -x)
const int MAXN = 1e5 + 10;
int n;
int maxx = -1;
int ans;
int a[MAXN], l[MAXN], r[MAXN];
int tree[MAXN];
void add(int x, int y) {
for (; x <= maxx; x += lowbit(x)) tree[x] += y;
}
int ask(int x) {
int res = 0;
for (; x; x -= lowbit(x)) res += tree[x];
return res;
}
signed main() {
freopen("cow.in", "r", stdin);
freopen("cow.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
maxx = max(maxx, a[i]);
}
for (int i = 1; i <= n; ++i) {
l[i] = ask(maxx) - ask(a[i]);
add(a[i], 1);
}
memset(tree, 0, sizeof(tree));
for (int i = n; i >= 1; --i) {
r[i] = ask(a[i] - 1);
add(a[i], 1);
}
for (int i = 1; i <= n; ++i) {
ans += (l[i] + r[i]) * a[i];
}
cout << ans << endl;
return 0;
}