Quand j'ai utilisé normalement la méthode count de python, j'ai fait TLE, donc quand j'ai essayé d'utiliser Counter, j'ai pu AC.
Voici la réponse en utilisant Counter.
code.py
import sys
from collections import Counter
N=int(sys.stdin.readline())
L=list(map(int,sys.stdin.readline().split()))
C=Counter(L) #Inclus dans L{lettre:Nombre d'apparitions}Je reviendrai avec le type de dictionnaire de
x=0
for a in C.values(): #Extraire uniquement la valeur (nombre d'occurrences)
x += int(a*(a-1)/2)
for K in range(N):
print(x-C[L[K]]+1) #Soustrayez la combinaison contenant K du même nombre de combinaisons
Voici la réponse TLE. Sera-ce plus rapide avec un peu de bricolage?
code.py
import sys
N=int(sys.stdin.readline())
L=list(map(int,sys.stdin.readline().split()))
C=list(set(L))
x=0
for i in range(len(C)):
a = L.count(C[i])
x += int(a*(a-1)/2)
for K in range(N):
print(x-L.count(L[K])+1)
Recommended Posts