From 5d69f923116a2b251a445c0cb9e6f23551ad686a Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 8 Dec 2025 07:29:26 +0100 Subject: Day 8 2025 --- 2025/08/b.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 2025/08/b.py (limited to '2025/08/b.py') diff --git a/2025/08/b.py b/2025/08/b.py new file mode 100644 index 0000000..4a6d610 --- /dev/null +++ b/2025/08/b.py @@ -0,0 +1,26 @@ +import fileinput + +with fileinput.input() as lines: + pts = [tuple(int(x) for x in line[:-1].split(',')) for line in lines] + +r = range(len(pts)) + +def dist(p, q): + return (p[0]-q[0])**2 + (p[1]-q[1])**2 + (p[2]-q[2])**2 + +d = sorted([(dist(pts[i], pts[j]), i, j) for i in r for j in r if j > i]) + +rep = [i for i in r] + +def findrep(i): + return i if rep[i] == i else findrep(rep[i]) + +def joinrep(i, j): + rep[findrep(i)] = findrep(j) + +for _, j, k in d: + if findrep(j) != findrep(k): + joinrep(j, k) + sol = pts[j][0] * pts[k][0] + +print(sol) -- cgit v1.3