#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6+5;
int n, a[N];
int L[N], R[N], cnt[N];
int bit[N];
void update(int p, int v) {
for (; p <= n; p += p & -p) bit[p] += v;
}
int query(int p) {
int s = 0;
for (; p > 0; p -= p & -p) s += bit[p];
return s;
}
void solve() {
cin >> n;
vector<int> vals;
for (int i = 1; i <= n; i++) {
cin >> a[i];
vals.push_back(a[i]);
}
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
for (int i = 1; i <= n; i++) a[i] = lower_bound(vals.begin(), vals.end(), a[i]) - vals.begin() + 1;
for (int i = 1; i <= n; i++) L[i] = ++cnt[a[i]];
fill(cnt + 1, cnt + n + 1, 0);
for (int i = n; i >= 1; i--) R[i] = ++cnt[a[i]];
ll ans = 0;
for (int i = n; i >= 1; i--) {
if (L[i] > 1) ans += query(L[i] - 1);
update(R[i], 1);
}
cout << ans << '\n';
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << clock() << " ms.\n";
#endif
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGludCBOID0gMWU2KzU7CgppbnQgbiwgYVtOXTsKaW50IExbTl0sIFJbTl0sIGNudFtOXTsKCmludCBiaXRbTl07Cgp2b2lkIHVwZGF0ZShpbnQgcCwgaW50IHYpIHsKICAgIGZvciAoOyBwIDw9IG47IHAgKz0gcCAmIC1wKSBiaXRbcF0gKz0gdjsKfQoKaW50IHF1ZXJ5KGludCBwKSB7CiAgICBpbnQgcyA9IDA7CiAgICBmb3IgKDsgcCA+IDA7IHAgLT0gcCAmIC1wKSBzICs9IGJpdFtwXTsKICAgIHJldHVybiBzOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgY2luID4+IG47CiAgICB2ZWN0b3I8aW50PiB2YWxzOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgdmFscy5wdXNoX2JhY2soYVtpXSk7CiAgICB9CiAgICBzb3J0KHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSk7CiAgICB2YWxzLmVyYXNlKHVuaXF1ZSh2YWxzLmJlZ2luKCksIHZhbHMuZW5kKCkpLCB2YWxzLmVuZCgpKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgYVtpXSA9IGxvd2VyX2JvdW5kKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSwgYVtpXSkgLSB2YWxzLmJlZ2luKCkgKyAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBMW2ldID0gKytjbnRbYVtpXV07CiAgICBmaWxsKGNudCArIDEsIGNudCArIG4gKyAxLCAwKTsKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkgUltpXSA9ICsrY250W2FbaV1dOwogICAgbGwgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkgewogICAgICAgIGlmIChMW2ldID4gMSkgYW5zICs9IHF1ZXJ5KExbaV0gLSAxKTsKICAgICAgICB1cGRhdGUoUltpXSwgMSk7CiAgICB9CiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoKICAgIGludCB0ZXN0cyA9IDE7IC8vIGNpbiA+PiB0ZXN0czsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgICNpZmRlZiBMT0NBTAogICAgY2VyciA8PCAiXG5UaW1lIGVsYXBzZWQ6ICIgPDwgY2xvY2soKSA8PCAiIG1zLlxuIjsKICAgICNlbmRpZgoKICAgIHJldHVybiAwOwp9Cg==