Solve 2016 day 10.

This commit is contained in:
felixm 2024-04-01 08:21:25 -04:00
parent e528e84d36
commit d2272e07f5
2 changed files with 51 additions and 1 deletions

49
2016/d10.py Normal file
View File

@ -0,0 +1,49 @@
import sys
from lib import *
data = open(0).read().strip()
first = False
bots = {}
outputs = {}
while True:
if not first and 0 in outputs and 1 in outputs and 2 in outputs:
print(outputs[0] * outputs[1] * outputs[2])
sys.exit(0)
for line in data.splitlines():
ints = str_to_ints(line)
if len(ints) == 2:
val, bot = ints
if bot in bots:
if val not in bots[bot]:
bots[bot].append(val)
else:
bots[bot] = [val]
elif len(ints) == 3:
bot, lobot, hibot = ints
if bot in bots and len(bots[bot]) == 2:
loval = min(bots[bot])
hival = max(bots[bot])
bots[bot] = []
if first and loval == 17 and hival == 61:
print(bot)
sys.exit(0)
if "low to bot" in line:
if lobot in bots:
if loval not in bots[lobot]:
bots[lobot].append(loval)
else:
bots[lobot] = [loval]
if "high to bot" in line:
if hibot in bots:
if hival not in bots[hibot]:
bots[hibot].append(hival)
else:
bots[hibot] = [hival]
if "low to output" in line:
outputs[lobot] = loval
if "high to output" in line:
outputs[hibot] = hival
else:
assert False

View File

@ -42,4 +42,5 @@ written in Python.
- Day 7: 31:20 hmm
- Day 8: 14:50 meh
- Day 9: 26:00 okay
- Day 10:
- Day 10: 23:07
- Day 11: