import sys, re

from collections import deque, defaultdict, Counter

from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians#, log2

from itertools import accumulate, permutations, combinations, combinations_with_replacement, product, groupby

from operator import itemgetter, mul

from copy import deepcopy, copy

from string import ascii_lowercase, ascii_uppercase, digits

from bisect import bisect, bisect_left, insort, insort_left

from fractions import gcd

from heapq import heappush, heappop

from functools import reduce

def input(): return sys.stdin.readline().strip()

def INT(): return int(eval(input()))

def MAP(): return list(map(int, input().split()))

def LIST(): return list(map(int, input().split()))

def ZIP(n): return list(zip(*(MAP() for _ in range(n))))

sys.setrecursionlimit(10 ** 9)

INF = float('inf')

mod = 10 ** 9 + 7



N = INT()

A = LIST()



dic = defaultdict(int)

for x in A:

	dic[x] += 1



total = 0

for x in dic:

	total += dic[x]*(dic[x]-1)//2



for x in A:

	print((total-dic[x]+1))

import sys, re

from collections import deque, defaultdict, Counter

from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians#, log2

from itertools import accumulate, permutations, combinations, combinations_with_replacement, product, groupby

from operator import itemgetter, mul

from copy import deepcopy, copy

from string import ascii_lowercase, ascii_uppercase, digits

from bisect import bisect, bisect_left, insort, insort_left

from fractions import gcd

from heapq import heappush, heappop

from functools import reduce

def input(): return sys.stdin.readline().strip()

def INT(): return int(eval(input()))

def MAP(): return list(map(int, input().split()))

def LIST(): return list(map(int, input().split()))

def ZIP(n): return list(zip(*(MAP() for _ in range(n))))

sys.setrecursionlimit(10 ** 9)

INF = float('inf')

mod = 10 ** 9 + 7



N = INT()

A = LIST()



#print(Counter(A).keys())

#print(Counter(A).values())

#print(Counter(A).items())



lis = [0]*(N+1)

ans = 0

for key, value in list(Counter(A).items()):

	lis[key] = value

	ans += value*(value-1)//2



#print(lis)



for i in range(N):

	print((ans-lis[A[i]]+1))

import sys, re
from collections import deque, defaultdict, Counter
from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians  # , log2
from itertools import (
    accumulate,
    permutations,
    combinations,
    combinations_with_replacement,
    product,
    groupby,
)
from operator import itemgetter, mul
from copy import deepcopy, copy
from string import ascii_lowercase, ascii_uppercase, digits
from bisect import bisect, bisect_left, insort, insort_left
from fractions import gcd
from heapq import heappush, heappop
from functools import reduce


def input():
    return sys.stdin.readline().strip()


def INT():
    return int(eval(input()))


def MAP():
    return list(map(int, input().split()))


def LIST():
    return list(map(int, input().split()))


def ZIP(n):
    return list(zip(*(MAP() for _ in range(n))))


sys.setrecursionlimit(10**9)
INF = float("inf")
mod = 10**9 + 7
N = INT()
A = LIST()
dic = defaultdict(int)
for x in A:
    dic[x] += 1
total = 0
for x in dic:
    total += dic[x] * (dic[x] - 1) // 2
for x in A:
    print((total - dic[x] + 1))

import sys, re
from collections import deque, defaultdict, Counter
from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians  # , log2
from itertools import (
    accumulate,
    permutations,
    combinations,
    combinations_with_replacement,
    product,
    groupby,
)
from operator import itemgetter, mul
from copy import deepcopy, copy
from string import ascii_lowercase, ascii_uppercase, digits
from bisect import bisect, bisect_left, insort, insort_left
from fractions import gcd
from heapq import heappush, heappop
from functools import reduce


def input():
    return sys.stdin.readline().strip()


def INT():
    return int(eval(input()))


def MAP():
    return list(map(int, input().split()))


def LIST():
    return list(map(int, input().split()))


def ZIP(n):
    return list(zip(*(MAP() for _ in range(n))))


sys.setrecursionlimit(10**9)
INF = float("inf")
mod = 10**9 + 7
N = INT()
A = LIST()
# print(Counter(A).keys())
# print(Counter(A).values())
# print(Counter(A).items())
lis = [0] * (N + 1)
ans = 0
for key, value in list(Counter(A).items()):
    lis[key] = value
    ans += value * (value - 1) // 2
# print(lis)
for i in range(N):
    print((ans - lis[A[i]] + 1))

-dic = defaultdict(int) -for x in A: -    dic[x] += 1 -total = 0 -for x in dic: -    total += dic[x] * (dic[x] - 1) // 2 -for x in A: -    print((total - dic[x] + 1)) +# print(Counter(A).keys()) +# print(Counter(A).values()) +# print(Counter(A).items()) +lis = [0] * (N + 1) +ans = 0 +for key, value in list(Counter(A).items()): +    lis[key] = value +    ans += value * (value - 1) // 2 +# print(lis) +for i in range(N): +    print((ans - lis[A[i]] + 1))