Buggy python submission (verdict: Time Limit Exceeded):
import collections

N = int(input())
A = input().split()

A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A.count(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)
    

Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Buggy python submission (verdict: Time Limit Exceeded):
import collections

N = int(input())
A = input().split()

A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_set:
    count_a = A.count(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = input().split()

A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = {}
#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_set:
    count_a = A.count(a)
    all_count += (count_a * (count_a - 1) // 2)
#    A_dic.update({a:A.count(a)})

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    C =  A.count(A[i])
#    print(all_count - A_dic.get(A[i])+1)
    print(all_count - C + 1)

Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = input().split()

A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = {}
#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_set:
    count_a = A.count(a)
    all_count += (count_a * (count_a - 1) // 2)
    A_dic.update({a:A.count(a)})

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)


Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = input().split()
C = {}

def func01(S,key,C):

    sum_count = 0
    B = set(S)

    if len(B) == N:
        sum_count = 0
    else:
        for s in B:
            count_s = S.count(s)
            sum_count += (count_s * (count_s - 1) // 2)
        C.update({key: sum_count})
    return(sum_count)

for i in range(N):
#すでに計算済みの数字ならば計算結果を参照
#計算未ならば 計算して 計算結果を追加

    if A[i] in C.keys():
        sum_count = C.get(A[i])
    else:
        X = A[0:i] + A[i + 1:N]
        sum_count = func01(X, A[i], C)
    print(sum_count)


Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = input().split()
C = {}

def func01(S,key,C):
    #すでに計算済みの数字ならば計算結果を参照
    #計算未ならば 計算して 計算結果を追加
    if key in C.keys():
        sum_count = C.get(key)

    else:
        sum_count = 0
        B = set(S)

        if len(B) == N:
            sum_count = 0
        else:
            for s in B:
                count_s = S.count(s)
                sum_count += (count_s * (count_s - 1) // 2)
            C.update({key: sum_count})
    print(sum_count)


for i in range(N):
    X = A[0:i] + A[i + 1:N]
    func01(X, A[i], C)

Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)

Buggy python submission (verdict: Time Limit Exceeded):
N = int(input())
A = input().split()

def func01(S):
    sum_count=0
    B = set(S)
    if len(B) == N:
        sum_count = 0
    else:
        for s in B:
            count_s = S.count(s)
            sum_count += (count_s * (count_s - 1) // 2)
    print(sum_count)

for i in range(N):
    X = A[0:i] + A[i + 1:N]
    func01(X)


Fixed submission:
import collections

N = int(input())
A = input().split()

#A_set = set(A)

#ボールに書かれている 数字の内訳を辞書に登録
A_dic = collections.Counter(A)

#すべてのボールから同じボールを取り出す方法数
all_count = 0

for a in A_dic.keys():
    count_a = A_dic.get(a)
    all_count += (count_a * (count_a - 1) // 2)

#n個あるボールから 1個取り除いた場合の方法数
#すべてのボールから取り出す方法数 - (n-1)通り

for i in range(N):
    print(all_count - A_dic.get(A[i])+1)