	
 #include <bits/stdc++.h>
 
 #define FIXED_FLOAT(x)  std::fixed <<std::setprecision(20) << (x)
 #define all(v) (v).begin(), (v).end()
 using namespace  std;
 #define forn(i,n) for (int i = 0; i < (n); ++i)
 #define rforn(i, n) for(int i = (n) - 1;i >= 0;--i)
 using ll = long long;
 int mod = (ll)1e9 + 7;
 #define PI acos(-1)
 typedef pair<int, int> pairs;
 
 const int INF = 1e9 + 1;
 const int N = 2e5 + 100;
 const double eps = 1e-7;
 
 template <class T> using V = vector<T>;  
 template <class T> using VV = V<V<T>>;  
 
 template <typename XPAX>
 void ckma(XPAX &x, XPAX y) {
     x = (x < y ? y : x);
 }
 template <typename XPAX>
 void ckmi(XPAX &x, XPAX y) {
     x = (x > y ? y : x);
 }
 
 void solve() {
 
 
 	int n;
 	cin >> n;

 	ll ans = 0;
 	map<int, int> mp;

 	ll tot = 0;
 	forn(i, n) {
 		int x;
 		cin >> x;
 		ans += tot - mp[x];

 		mp[x]++;
 		tot++;
 	}
 	cout << ans << '\n';
 
 
 
 }
 void test_case() {
     int t;
     cin >> t;
     forn(p, t) {
 
         //cout << "Case #" << p + 1 << ": ";
         solve();
     }
 }
 int main() {
 
     ios::sync_with_stdio(false);
     cin.tie(0);
 
     solve();
 
 }
  

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

map <ll , ll> cnt ;
int n , h ;

int main(){
	cin >> n ;
	for (int i = 0 ; i < n ; i++){
		cin >> h ;
		cnt[h] ++ ;
	}

	ll ans = 0 ;

	for (auto i : cnt){
		ans += i.second * (n- i.second)  ;
	}
	cout << ans/2 << "\n" ;
}	