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)
|