22 lines
461 B
Python
22 lines
461 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import networkx as nx
|
||
|
|
||
|
G = nx.Graph()
|
||
|
|
||
|
with open("input.txt", "r") as f:
|
||
|
for line in f:
|
||
|
pieces = line.strip().split(": ")
|
||
|
start = pieces[0]
|
||
|
for end in pieces[1].split(" "):
|
||
|
G.add_edge(start, end)
|
||
|
|
||
|
cut_edges = nx.minimum_edge_cut(G)
|
||
|
G.remove_edges_from(cut_edges)
|
||
|
|
||
|
part1 = 1
|
||
|
for subgraph in (G.subgraph(c) for c in nx.connected_components(G)):
|
||
|
part1 *= subgraph.number_of_nodes()
|
||
|
|
||
|
print(part1)
|