Au moins deux fois trop de calculs, mais l'optimisation ne valait pas la peine, ça reste très rapide.
Partie 1 et 2
fromshapely.geometry.polygonimportPolygonfromshapely.geometryimportPointfromitertoolsimportproductasprodP=[tuple(map(int,line.split(",")))forlineinopen(0).read().strip().split('\n')]shape=Polygon(P)ans1=ans2=0for(a,b),(c,d)inprod(P,P):if(a,b)>=(c,d):# avoid comapring a pair twicecontinuearea=(1+abs(a-c))*(1+abs(b-d))ans1=max(ans1,area)ifarea<=ans2:# avoid more computation if not a new maxcontinuerect=Polygon([(a,b),(a,d),(c,d),(c,b)])ifshape.contains(rect):ans2=areaprint(ans1,ans2)
Pas trop d'intérêt à compacter le code puisque je n'ai pas implémenté le gros morceau qu'est le contains.
[^] # Re: jour 9
Posté par steph1978 . En réponse au journal Advent of Code 2025. Évalué à 2. Dernière modification le 09 décembre 2025 à 11:54.
Partie 1 en 2 lignes
Au moins deux fois trop de calculs, mais l'optimisation ne valait pas la peine, ça reste très rapide.
Partie 1 et 2
Pas trop d'intérêt à compacter le code puisque je n'ai pas implémenté le gros morceau qu'est le
contains.