Je galérais à organiser ma comparaison de paquets, et j'ai eu un indice d'utiliser un comparateur. Je suis reparti là dessus et ça fonctionne.
importsysP=[tuple(map(eval,p.split("\n")))forpinsys.stdin.read().split("\n\n")]defC(l,r):T=(type(l),type(r))ifT==(int,int):ifl<r:return-1returnl>r# 0 or 1ifT==(int,list):returnC([l],r)ifT==(list,int):returnC(l,[r])# list,listforqinzip(l,r):c=C(*q)ifc:returncreturnC(len(l),len(r))# part 1S=0fori,pinenumerate(P):ifC(*p)<=0:S+=i+1print(S)# part 2fromfunctoolsimportcmp_to_keyQ=[qfor(l,r)inPforqin[l,r]]Q.append([[2]])Q.append([[6]])Q.sort(key=cmp_to_key(C))print((Q.index([[2]])+1)*(Q.index([[6]])+1))
# python, en trichant
Posté par steph1978 . En réponse au message Avent du Code, jour 13. Évalué à 4.
Je galérais à organiser ma comparaison de paquets, et j'ai eu un indice d'utiliser un comparateur. Je suis reparti là dessus et ça fonctionne.