#include <bits/stdc++.h>
using namespace std;
int n;
long long fen[1000005];
void update(int p, int val) {
  for (int i = p; i <= n; i += i & -i) fen[i] += val;
}
long long sum(int p) {
  long long ans = 0;
  for (int i = p; i; i -= i & -i) ans += fen[i];
  return ans;
}
void prepro() {}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.precision(17);
  cin >> n;
  memset(fen, 0, sizeof(fen));
  vector<int> a(n);
  for (auto i = 0; i < n; i++) cin >> a[i];
  reverse(a.begin(), a.end());
  vector<int> dp(n + 1, 0);
  unordered_map<int, int> cnt;
  long long ans = 0;
  for (int i = n - 1; i >= 0; i--) cnt[a[i]]++, dp[i] = cnt[a[i]];
  cnt.clear();
  ;
  for (auto i = 0; i < n - 1; i++) {
    cnt[a[i]]++;
    update(cnt[a[i]], 1);
    ans += sum(dp[i + 1] - 1);
  }
  cout << ans;
  return 0;
}
