| 1234567891011121314151617181920212223242526 |
- #!/usr/bin/env python3
- import sys
- import re
- from collections import defaultdict
- from itertools import permutations
- graph = defaultdict(lambda: defaultdict(int))
- pat = re.compile(r'(\w+) would (gain|lose) (\d+) .* to (\w+)\.')
- for line in sys.stdin:
- a, sign, diff, b = pat.match(line).groups()
- diff = int(diff) * (-1 if sign == 'lose' else 1)
- graph[a][b] += diff
- graph[b][a] += diff
- def score(people):
- score = graph[people[0]][people[-1]]
- for i in range(len(people) - 1):
- score += graph[people[i]][people[i + 1]]
- return score
- def bestscore(people):
- return max(map(score, permutations(people)))
- everyone = list(graph.keys())
- print(bestscore(everyone))
- print(bestscore(everyone + ['me']))
|