summaryrefslogtreecommitdiff
path: root/2025/08/python.py
blob: 665aec84ae896ec30c6026e567fdec717acb5862 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python3

from fileinput import input
from math import dist, prod
from operator import itemgetter

boxes = [[*map(int, line.split(","))] for line in input()]
N = len(boxes)

js = {n: {n} for n in range(N)}
conns = sorted(
    ((x, y) for x in range(N) for y in range(x)),
    key=lambda t: dist(*itemgetter(*t)(boxes)),
)

for x, y in conns[:1000]:
    j = js[x] | js[y]
    for b in j:
        js[b] = j

lens = {id(j): len(j) for j in js.values()}.values()

silver = prod(sorted(lens, reverse=True)[:3])
gold = 0

print("silver:", silver)
print("gold:", gold)