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

// #define TEST(a) cout<<"Case #"<<a<<": ";
#define int long long
// #define ll unsigned long long
// #define Uint unsigned int
#define rep(i, a, b) for (int i = a; i < b; i++)
#define vi vector<int>
#define all(a) a.begin(),a.end()
#define pb push_back
#define mii map<int, int>
#define INF 100000000
#define take(a) int a;cin >> a;
#define MOD 1000000007
#define pii pair<int,int>
#define MAX_N 1000


int32_t main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin>>n;
    vi a;
    mii cnt;
    rep(i,0,n)
    {
        take(val);
        a.pb(val);
        if(cnt.find(val) == cnt.end())
        {
            cnt.insert({val,1});
        }
        else
        {
            cnt[val]++;
        }
    }
    int ans = 0;
    for(int ele:a)
    {
        ans += (n-cnt[ele]);
    }
    cout<<ans/2;
    return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector <int> Liczby(200003);

int main()
{
    int Ilosc;
    long long wynik = 0, AktualnyWynik = 0;

    cin >> Ilosc;

    for(int i = 0; i < Ilosc; ++i)
    {
        cin >> Liczby[i];
        AktualnyWynik += Liczby[i];
    }

    sort(Liczby.begin(), Liczby.begin() + Ilosc);

    AktualnyWynik -= Liczby[0];

    for(int i = 1; i < Ilosc; ++i)
    {
        long long tmp = Liczby[i - 1];
        tmp *= (Ilosc - i);
        wynik += AktualnyWynik - tmp;
        AktualnyWynik -= Liczby[i];
    }

    cout << wynik;
    return 0;
}
