1
0
Fork 0
advent2017/8/8p2.py

62 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python
# -*- coding: utf-8 -*-
inputs = ["example.txt", "input.txt"]
registers = {}
def get_value(register):
if register not in registers:
registers[register] = 0
return int(registers[register])
def compare(operation, register, b):
result = False
a = get_value(register)
b = int(b)
if operation == '>':
if a > b:
result = True
elif operation == '<':
if a < b:
result = True
elif operation == '>=':
if a >= b:
result = True
elif operation == '<=':
if a <= b:
result = True
elif operation == '!=':
if a != b:
result = True
elif operation == '==':
if a == b:
result = True
return result
def solve(filename):
big = 0
with open(filename, "r") as fp:
for line in fp:
values = line.split()
if compare(values[5], values[4], values[6]):
if values[1] == 'inc':
registers[values[0]] = get_value(values[0]) + int(values[2])
if registers[values[0]] > big:
big = registers[values[0]]
elif values[1] == 'dec':
registers[values[0]] = get_value(values[0]) - int(values[2])
if registers[values[0]] > big:
big = registers[values[0]]
return big
for puzzle in inputs:
print(puzzle, solve(puzzle))
registers.clear()