Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def day11(s, *, part2=False):
- # The solution assumes that the graph does not contain cycles!
- edges = {lhs: set(rhs.split()) for line in s.splitlines() for lhs, rhs in [line.split(': ')]}
- @functools.cache
- def get_count(node, num_special_visited):
- if node == 'out':
- return 1 if num_special_visited >= 2 else 0
- return sum(
- get_count(node2, num_special_visited + (node in {'dac', 'fft'}))
- for node2 in edges[node]
- )
- return get_count('svr', 0) if part2 else get_count('you', 2)
Advertisement
Add Comment
Please, Sign In to add comment