summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x2025/08/python.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/2025/08/python.py b/2025/08/python.py
new file mode 100755
index 0000000..665aec8
--- /dev/null
+++ b/2025/08/python.py
@@ -0,0 +1,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)