#include <bits/stdc++.h>
using namespace std;

int main(){
  
 long long  N, L = 0;
 long long ans = 0;
 cin >> N;
  
 vector<long long> vec(N);
  
 for (int i = 0; i < N; i++){
   int x;
   cin >> x;
   vec.at(i) = x;
 }
  
  sort(vec.begin(), vec.end());
  
  for (int i = 0; i < N; i++){

    if( vec.at(L) != vec.at(i) ){
      ans += (i - L) * ( N - i );  
      L = i;
    }
    
  }    
  
  cout << ans << endl;
  
  
}
using namespace std;
#include "bits/stdc++.h"
#define len(X) (int)(X).size()
#define all(X) (X).begin(), (X).end()
#define elif else if
#define ceil(x,y) (x + y-1)/y

#define int long long

int32_t main() { cin.tie(nullptr)->sync_with_stdio(false);	

	int n;cin>>n; 
	map<int,int> m;
	for(int a,i {}; i < n; ++i) cin>>a,m[a]++;
	// for(auto i : m) cout << i.second << ' ';
	// cout << '\n';
	
	vector<int> v;
	for(auto &i : m) v.push_back(i.second);

	vector<int> suff=v;
	
	for(int i = len(v)-2; i >= 0; --i) suff[i] += suff[i+1];
	// for(auto i : suff) cout << i << ' ';
	// cout << '\n';

	int ans{};

	for(int i {}; i < len(v)-1; ++i) {
		int res = v[i]; //res*suffix
		res *= suff[i+1];
		ans += res;
	}
	cout << ans << '\n';
	return 0;
}
// taskkill /IM "3.exe" /F
