67 lines
1.5 KiB
Python
Executable File
67 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
inputs = ["example.txt", "input.txt"]
|
|
#inputs = ["example.txt"]
|
|
#inputs = ["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):
|
|
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])
|
|
elif values[1] == 'dec':
|
|
registers[values[0]] = get_value(values[0]) - int(values[2])
|
|
|
|
biggest = 0
|
|
for i in registers:
|
|
print(i, registers[i])
|
|
if int(registers[i]) > biggest:
|
|
biggest = int(registers[i])
|
|
|
|
return biggest
|
|
|
|
|
|
|
|
for puzzle in inputs:
|
|
print(puzzle, solve(puzzle))
|
|
registers.clear()
|