def f(n):#nC2の関数

    if n==0:

        return 0

    return n*(n-1)/2

N=int(eval(input()))

A=list(map(int,input().split()))

d=dict()

e=dict()

ans=0

for i in range(N):#辞書を作る

    if A[i] not in d:

        d[A[i]]=0

    d[A[i]]+=1



for j in d:#それぞれのキーの個数をnC2として保存

    e[j]=f(d[j])

    ans+=e[j]#nC2の総和をとる



for i in A:

    print((int(ans-d[i]+1)))
def f(n):

  return (n*(n-1))//2

N=int(eval(input()))

A=list(map(int,input().split()))

d=dict()

ans=0

#それぞれが何個あるかを辞書に登録

for i in range(len(A)):

  if A[i] not in d:

    d[A[i]]=0

  d[A[i]]+=1

for i in d:

  ans+=f(d[i])

for i in range(len(A)):

  print((ans-d[A[i]]+1))
def f(n):  # nC2の関数
    if n == 0:
        return 0
    return n * (n - 1) / 2


N = int(eval(input()))
A = list(map(int, input().split()))
d = dict()
e = dict()
ans = 0
for i in range(N):  # 辞書を作る
    if A[i] not in d:
        d[A[i]] = 0
    d[A[i]] += 1
for j in d:  # それぞれのキーの個数をnC2として保存
    e[j] = f(d[j])
    ans += e[j]  # nC2の総和をとる
for i in A:
    print((int(ans - d[i] + 1)))

def f(n):
    return (n * (n - 1)) // 2


N = int(eval(input()))
A = list(map(int, input().split()))
d = dict()
ans = 0
# それぞれが何個あるかを辞書に登録
for i in range(len(A)):
    if A[i] not in d:
        d[A[i]] = 0
    d[A[i]] += 1
for i in d:
    ans += f(d[i])
for i in range(len(A)):
    print((ans - d[A[i]] + 1))

-def f(n):  # nC2の関数 -    if n == 0: -        return 0 -    return n * (n - 1) / 2 +def f(n): +    return (n * (n - 1)) // 2 -e = dict() -for i in range(N):  # 辞書を作る +# それぞれが何個あるかを辞書に登録 +for i in range(len(A)): -for j in d:  # それぞれのキーの個数をnC2として保存 -    e[j] = f(d[j]) -    ans += e[j]  # nC2の総和をとる -for i in A: -    print((int(ans - d[i] + 1))) +for i in d: +    ans += f(d[i]) +for i in range(len(A)): +    print((ans - d[A[i]] + 1))