advent-of-code/2016-python2/output/day_12.py

52 lines
1.1 KiB
Python

def solve(data):
p = data.splitlines()
pl = len(p)
def run(r):
i = 0
while i < pl:
o, *a = p[i].split()
match o:
case "cpy":
kv, t = a
r[t] = int(kv) if kv.isdigit() else r[kv]
i += 1
case "jnz":
kv, d = a
c = int(kv) if kv.isdigit() else r[kv]
i += 1 if c == 0 else int(d)
case "inc":
r[a[0]] += 1
i += 1
case "dec":
r[a[0]] -= 1
i += 1
return r["a"]
p1 = run(
{
"a": 0,
"b": 0,
"c": 0,
"d": 0,
}
)
p2 = run(
{
"a": 0,
"b": 0,
"c": 1,
"d": 0,
}
)
return p1, p2
if __name__ == "__main__":
with open("./input/12.txt", "r") as f:
inp = f.read().strip()
p1, p2 = solve(inp)
print(p1)
print(p2)