🏡 index : ~doyle/aoc.git

#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3Packages.pillow python3Packages.networkx

import sys
import networkx as nx

input = [line.strip().split("-") for line in sys.stdin]

nodes = set([node for pair in input for node in pair])
k_nodes = [node for node in nodes if node.startswith("t")]

G = nx.Graph()
G.add_nodes_from(nodes)
G.add_edges_from(input)

cliques = list(nx.enumerate_all_cliques(G))

part1 = 0

for clique in cliques:
    if len(clique) < 3:
        continue
    elif len(clique) > 3:
        break
    elif any(node in k_nodes for node in clique):
        part1 += 1

print(part1)

part2 = ",".join(sorted(cliques[-1]))
print(part2)