29 lines
792 B
Python
29 lines
792 B
Python
|
with open('day9-input', 'r') as file:
|
||
|
data = [l.strip('\n') for l in file]
|
||
|
|
||
|
towns = set()
|
||
|
distances = {}
|
||
|
def get_distance(town1, town2):
|
||
|
if town2 < town1:
|
||
|
return distances[(town2, town1)]
|
||
|
else:
|
||
|
return distances[(town1, town2)]
|
||
|
def set_distance(town1, town2, value):
|
||
|
if town2 < town1:
|
||
|
distances[(town2, town1)] = value
|
||
|
else:
|
||
|
distances[(town1, town2)] = value
|
||
|
|
||
|
for line in data:
|
||
|
town1, _, town2, _, distance = line.split(' ')
|
||
|
towns.add(town1)
|
||
|
towns.add(town2)
|
||
|
set_distance(town1, town2, int(distance))
|
||
|
|
||
|
from itertools import permutations
|
||
|
route_distances = []
|
||
|
for route in permutations(towns):
|
||
|
route_distances.append(sum([get_distance(a, b) for a, b in zip(route[:-1], route[1:])]))
|
||
|
print(min(route_distances)) # Part 1
|
||
|
print(max(route_distances)) # Part 2
|