1
0
Fork 0

Puzzle du 8 décembre 2017

This commit is contained in:
Lucidiot 2017-12-08 06:16:15 +01:00
parent bb5f763702
commit 4f68addba2
No known key found for this signature in database
GPG Key ID: 63BD9482C29D0F64
1 changed files with 36 additions and 0 deletions

36
2017/8/values.py Normal file
View File

@ -0,0 +1,36 @@
#!/usr/bin/env python3
import sys, re
pattern = re.compile(r"([a-z]+) (inc|dec) ([0-9\-]+) if ([a-z]+) ([><!=]+) ([0-9\-]+)")
data = [pattern.findall(line.strip())[0] for line in sys.stdin.readlines()]
values = {}
def getvar(name):
try:
return values[name]
except KeyError:
return 0
def run_if(variable, operator, value):
if operator == '==':
return getvar(variable) == value
elif operator == '!=':
return getvar(variable) != value
elif operator == '>':
return getvar(variable) > value
elif operator == '<':
return getvar(variable) < value
elif operator == '>=':
return getvar(variable) >= value
elif operator == '<=':
return getvar(variable) <= value
max_ever = -9000
for line in data:
if run_if(line[3], line[4], int(line[5])):
if line[1] == 'inc':
values[line[0]] = getvar(line[0]) + int(line[2])
elif line[1] == 'dec':
values[line[0]] = getvar(line[0]) - int(line[2])
if values[line[0]] > max_ever:
max_ever = values[line[0]]
print(max(values.values()), max_ever)