AdventOfCode/Python/2022/21/main.py

49 lines
1.2 KiB
Python

input = open("input", 'r')
# input = open("sample", 'r')
data = {}
total = 0
for line in input:
line = line.strip()
monkey, value = line.split(": ")
if len(value) > 5:
m1,op,m2 = value.split(" ")
data[monkey] = [m1, m2, op]
else:
data[monkey] = [int(value)]
def evaluate(monkey, graph):
if len(graph[monkey]) > 1:
m1, m2, op = graph[monkey]
left = evaluate(m1, graph)
right = evaluate(m2, graph)
return eval(f"{left}{op}{right}")
else:
return graph[monkey][0]
print(evaluate("root", data), end="\n\n")
r1, r2, op = data["root"]
data["root"] = [r1, r2, "=="]
def evaluate2(monkey, graph):
if len(graph[monkey]) > 1:
m1, m2, op = graph[monkey]
left = evaluate(m1, graph)
right = evaluate(m2, graph)
return eval(f"{left}{op}{right}")
else:
return graph[monkey][0]
print(evaluate("wcnp", data))
data["humn"] = [3876027196100]
print(evaluate("pgnv", data))
print(evaluate("wcnp", data) > evaluate("pgnv", data))
print(evaluate("wcnp", data) == evaluate("pgnv", data))
# for i in range(3876027190000,3876028190000):
# data["humn"] = [i]
# if evaluate("root", data):
# print(i)
# break