You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.5 KiB
37 lines
1.5 KiB
knowable_facts = [ 'children:', 'cats:', 'samoyeds:', 'pomeranians:', 'akitas:', 'vizslas:', 'goldfish:', 'trees:', 'cars:', 'perfumes:']
|
|
known_facts = { 'children:' : 3, 'cats:' : 7, 'samoyeds:' : 2, 'pomeranians:' : 3, 'akitas:' : 0, 'vizslas:' : 0, 'goldfish:' : 5, 'trees:' : 3 , 'cars:' : 2, 'perfumes:' : 1 }
|
|
file = open('input.txt', 'r')
|
|
sues = {}
|
|
sue_score = []
|
|
def fact_remembered(sue_key, key):
|
|
if sues[sue_key][key] == -1:
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
for line in file:
|
|
splits = line.split(' ')
|
|
sues.setdefault(splits[1], { 'children:' : -1, 'cats:' : -1, 'samoyeds:' : -1, 'pomeranians:' : -1, 'akitas:' : -1, 'vizslas:' : -1, 'goldfish:' : -1, 'trees:' : -1 , 'cars:' : -1, 'perfumes:' : -1 })
|
|
|
|
|
|
for i in range(2, len(splits)-1, 2):
|
|
key = splits[i]
|
|
value = splits[i+1]
|
|
value = int(value.strip(','))
|
|
sues[splits[1]][key] = value
|
|
|
|
score = 0
|
|
for fact in knowable_facts:
|
|
if fact_remembered(splits[1], fact):
|
|
if fact == 'cats:' or fact == 'trees:':
|
|
if sues[splits[1]][fact] > known_facts[fact]:
|
|
score += 1
|
|
elif fact == 'pomeranians:' or fact == 'trees:':
|
|
if sues[splits[1]][fact] < known_facts[fact]:
|
|
score += 1
|
|
elif sues[splits[1]][fact] == known_facts[fact]:
|
|
score += 1
|
|
|
|
sue_score.append([score, splits[1]])
|
|
|
|
print( min(sue_score), max(sue_score) )
|