// Original C++ solution (slower):
#include <bits/stdc++.h>

#include <iostream>

#include <sstream>

#include <cstdio>

#include <cmath>

#include <cstring>

#include <cctype>

#include <string>

#include <vector>

#include <list>

#include <set>

#include <map>

#include <queue>

#include <stack>

#include <algorithm>

#include <functional>

using namespace std; 

#define DEBUG(x) cout << '>' << #x << ':' << x << endl;

#define REP(i,n) for(int i=0;i<(n);i++)

#define FOR(i,a,b) for(int i=(a);i<=(b);i++)

#define FORD(i,a,b) for(int i=(a);i>=(b);i--)

inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }

const int INF = 1<<29;

typedef long long int ll;

inline int two(int n) { return 1 << n; }

inline int test(int n, int b) { return (n>>b)&1; }

inline void set_bit(int & n, int b) { n |= two(b); }

inline void unset_bit(int & n, int b) { n &= ~two(b); }

inline int last_bit(int n) { return n & (-n); }

inline int ones(int n) { int res = 0; while(n && ++res) n-=n&(-n); return res; }

template<class T> void chmax(T & a, const T & b) { a = max(a, b); }

template<class T> void chmin(T & a, const T & b) { a = min(a, b); }

const int MOD=1000000007;



bool isPowerOfTwo (ll x)  

{  

    return x && (!(x&(x-1)));  

}

bool isPrime(int n) 

{ 

    if (n <= 1)  return false; 

    if (n <= 3)  return true; 

    if (n%2 == 0 || n%3 == 0) return false; 

  

    for (int i=5; i*i<=n; i=i+6) 

        if (n%i == 0 || n%(i+2) == 0) 

           return false; 

  

    return true; 

}

int highestPowerof2(unsigned int n) 

{ 

    // Invalid input 

    if (n < 1) 

        return 0; 

  

    int res = 1;

    for (int i=0; i<8*sizeof(unsigned int); i++) 

    { 

        int curr = 1 << i; 

        if (curr > n) 

           break; 

  

        res = curr; 

    } 

  

    return res; 

} 

long long binpow(long long a, long long b) {

    long long res = 1;

    while (b > 0) {

        if (b & 1)

            res = res * a;

        a = a * a;

        b >>= 1;

    }

    return res;

}       

////////////////////////////////////////////////////////////////////

ll printNcR(ll n, ll r) 

{ 

    if(n==r)

    return 1;

    if(n<r)

    return 0;

    ll p = 1, k = 1; 

    if (n - r < r) 

        r = n - r; 

  

    if (r != 0) { 

        while (r) { 

            p *= n; 

            k *= r; 

            long long m = __gcd(p, k); 

            p /= m; 

            k /= m; 

  

            n--; 

            r--; 

        } 

    } 

    else

        p = 1; 

        return p;

} 

int main()

{

  ios_base::sync_with_stdio(false);

  cin.tie(NULL);  

  cout.tie(NULL);

  int t=1;

  while(t--)

  {

    ll n;

    cin>>n;

    ll v[n];

    ll ans[200005]={0};

    

    REP(i,n)

    {

        ll x;

        cin>>x;

        v[i]=x;

        ans[x]++;

    }

    ll ini=0;

    for(ll i=0;i<200001;i++)

    {

        if(ans[i]>=2)

        ini+=printNcR(ans[i],2);

    }

    for(ll i=0;i<n;i++)

    {

        if(ans[v[i]]>=3)

        {

            cout<<ini - printNcR(ans[v[i]],2) + printNcR(ans[v[i]]-1,2)<<"\n";

        }

        else if(ans[v[i]]==2)

        {

            cout<<ini-1<<"\n";

        }

        else cout<<ini<<"\n";

    }

  }  

  return 0;

}

// Optimized solution to the same problem (faster):
#include <bits/stdc++.h>

#include <iostream>

#include <sstream>

#include <cstdio>

#include <cmath>

#include <cstring>

#include <cctype>

#include <string>

#include <vector>

#include <list>

#include <set>

#include <map>

#include <queue>

#include <stack>

#include <algorithm>

#include <functional>

using namespace std; 

#define DEBUG(x) cout << '>' << #x << ':' << x << endl;

#define REP(i,n) for(int i=0;i<(n);i++)

#define FOR(i,a,b) for(int i=(a);i<=(b);i++)

#define FORD(i,a,b) for(int i=(a);i>=(b);i--)

inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }

const int INF = 1<<29;

typedef long long int ll;

inline int two(int n) { return 1 << n; }

inline int test(int n, int b) { return (n>>b)&1; }

inline void set_bit(int & n, int b) { n |= two(b); }

inline void unset_bit(int & n, int b) { n &= ~two(b); }

inline int last_bit(int n) { return n & (-n); }

inline int ones(int n) { int res = 0; while(n && ++res) n-=n&(-n); return res; }

template<class T> void chmax(T & a, const T & b) { a = max(a, b); }

template<class T> void chmin(T & a, const T & b) { a = min(a, b); }

const int MOD=1000000007;



bool isPowerOfTwo (ll x)  

{  

    return x && (!(x&(x-1)));  

}

bool isPrime(int n) 

{ 

    if (n <= 1)  return false; 

    if (n <= 3)  return true; 

    if (n%2 == 0 || n%3 == 0) return false; 

  

    for (int i=5; i*i<=n; i=i+6) 

        if (n%i == 0 || n%(i+2) == 0) 

           return false; 

  

    return true; 

}

int highestPowerof2(unsigned int n) 

{ 

    // Invalid input 

    if (n < 1) 

        return 0; 

  

    int res = 1;

    for (int i=0; i<8*sizeof(unsigned int); i++) 

    { 

        int curr = 1 << i; 

        if (curr > n) 

           break; 

  

        res = curr; 

    } 

  

    return res; 

} 

long long binpow(long long a, long long b) {

    long long res = 1;

    while (b > 0) {

        if (b & 1)

            res = res * a;

        a = a * a;

        b >>= 1;

    }

    return res;

}       

////////////////////////////////////////////////////////////////////



int main()

{

  ios_base::sync_with_stdio(false);

  cin.tie(NULL);  

  cout.tie(NULL);

  int t=1;

  while(t--)

  {

    int a[200005]={0};

    int n;

    cin>>n;

    ll ans=0;

    ll in[n];

    REP(i,n)

    {

        int x;

        cin>>x;

        a[x]++;

        in[i]=x;

    }

    REP(i,200005)

    {

        ans+=(1LL*a[i]*(a[i]-1))/2;

    }

    vector<ll> v;

    REP(i,n)

    {

        if(a[in[i]]!=0)

        v.push_back(ans-(a[in[i]]-1));

    }

    for(auto i:v)

    {

        cout<<i<<"\n";

    }

  }  

  return 0;

}

// Fastest known solution for this problem: