2023 day 25.

This commit is contained in:
Mikaël Capelle 2023-12-25 10:36:36 +01:00
parent 19d93e0c1d
commit d002e419c3
3 changed files with 1200 additions and 2 deletions

View File

@ -1,11 +1,27 @@
import sys import sys
from collections import defaultdict from collections import defaultdict
from dataclasses import dataclass from dataclasses import dataclass
import networkx as nx
lines = sys.stdin.read().splitlines() components = {
(p := line.split(": "))[0]: p[1].split() for line in sys.stdin.read().splitlines()
}
targets = {
t for c in components for t in components[c] if t not in components
}
G = nx.Graph()
G.add_nodes_from(list(components) + list(targets))
G.add_edges_from((u, v) for u, vs in components.items() for v in vs)
cut = nx.minimum_edge_cut(G)
G.remove_edges_from(cut)
c1, c2 = nx.connected_components(G)
# part 1 # part 1
answer_1 = ... answer_1 = len(c1) * len(c2)
print(f"answer 1 is {answer_1}") print(f"answer 1 is {answer_1}")
# part 2 # part 2

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
jqt: rhn xhk nvd
rsh: frs pzl lsr
xhk: hfx
cmg: qnr nvd lhk bvb
rhn: xhk bvb hfx
bvb: xhk hfx
pzl: lsr hfx nvd
qnr: nvd
ntq: jqt hfx bvb xhk
nvd: lhk
lsr: lhk
rzs: qnr cmg lsr rsh
frs: qnr lhk lsr