generated from public/aoc_template
day11 - optimize
This commit is contained in:
parent
84a0c421b2
commit
f6c5a12e7d
13
day11.py
13
day11.py
@ -47,8 +47,7 @@ class Day(AOCDay):
|
||||
self.DP[target][start] = sum(self.get_paths(x.name, target, devices) for x in devices[start].outputs)
|
||||
return self.DP[target][start]
|
||||
|
||||
def fill_cache(self, start: str, target: str, devices: dict[str, Device]) -> None:
|
||||
devices = self.parse_input()
|
||||
def fill_cache(self, target: str, devices: dict[str, Device]) -> None:
|
||||
self.seen_reset()
|
||||
|
||||
Q = deque([devices[target]])
|
||||
@ -67,14 +66,14 @@ class Day(AOCDay):
|
||||
|
||||
def part2(self) -> Any:
|
||||
devices = self.parse_input()
|
||||
self.fill_cache("svr", "out", devices)
|
||||
self.fill_cache("out", devices)
|
||||
if self.DP["out"]["fft"] < self.DP["out"]["dac"]:
|
||||
self.fill_cache("dac", "fft", devices)
|
||||
self.fill_cache("svr", "dac", devices)
|
||||
self.fill_cache("fft", devices)
|
||||
self.fill_cache("dac", devices)
|
||||
return self.DP["dac"]["svr"] * self.DP["fft"]["dac"] * self.DP["out"]["fft"]
|
||||
else:
|
||||
self.fill_cache("fft", "dac", devices)
|
||||
self.fill_cache("svr", "fft", devices)
|
||||
self.fill_cache("dac", devices)
|
||||
self.fill_cache("fft", devices)
|
||||
return self.DP["fft"]["svr"] * self.DP["dac"]["fft"] * self.DP["out"]["dac"]
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user