/ Python / 2018 / 25.py
25.py
 1  from lib import *
 2  
 3  input = read_input(2018, 25)
 4  
 5  
 6  coords = [tuple(map(int, line.split(","))) for line in input.splitlines()]
 7  uf = UnionFind(len(coords))
 8  for i in range(len(coords)):
 9      for j in range(i + 1, len(coords)):
10          if sum(abs(a - b) for a, b in zip(coords[i], coords[j])) <= 3:
11              uf.merge(i, j)
12  
13  print(len(set(map(uf.find, range(len(coords))))))