diff options
author | Tomasz Kramkowski <tomasz@kramkow.ski> | 2022-12-18 13:07:49 +0000 |
---|---|---|
committer | Tomasz Kramkowski <tomasz@kramkow.ski> | 2022-12-18 13:07:49 +0000 |
commit | f13197e2a519d7342fb06b0c6b4b3f026b602e9d (patch) | |
tree | b6a56417dc7781649e4e876aa9acb6ee12ff267a | |
parent | 7d61b30fc61a0e45b0982a558122d7b3cd4548cd (diff) | |
download | aoc2022-f13197e2a519d7342fb06b0c6b4b3f026b602e9d.tar.gz aoc2022-f13197e2a519d7342fb06b0c6b4b3f026b602e9d.tar.xz aoc2022-f13197e2a519d7342fb06b0c6b4b3f026b602e9d.zip |
16 intern later to compact node ids
-rw-r--r-- | 16.py | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -25,22 +25,22 @@ with open_day(16) as f: m = regex.match(line) assert(m) valve, flow, neighbours = m.group(1, 2, 3) - inp[intern(valve)] = (int(flow), [intern(n) for n in neighbours.split(', ')]) + inp[valve] = (int(flow), neighbours.split(', ')) nodes = {} for valve, (flow, neighbours) in inp.items(): - if valve != 0 and flow == 0: continue + if valve != 'AA' and flow == 0: continue actual_neighbours = [] for n in neighbours: prev = valve for cost in count(1): - if n == 0 or inp[n][0] != 0: break + if n == 'AA' or inp[n][0] != 0: break l, r = inp[n][1] nnext = r if l == prev else l prev = n n = nnext - actual_neighbours.append((n, cost)) - nodes[valve] = Node(flow, actual_neighbours) + actual_neighbours.append((intern(n), cost)) + nodes[intern(valve)] = Node(flow, actual_neighbours) @cache def sum_flow(open_valves): |