Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

1234567891011121314151617181920
  1. import collections
  2. import itertools
  3. happiness = collections.defaultdict(int)
  4. people = set()
  5. for line in df.read_text().splitlines():
  6. A, verb, N, B = re.findall(r'([A-Z][a-z]+|gain|lose|\d+)', line)
  7. happiness[A, B] = int(N) if verb == 'gain' else -int(N)
  8. people.update({A, B})
  9. def calc(seq):
  10. return sum(happiness[b, a] + happiness[b, c]
  11. for a, b, c in zip(seq[-1:] + seq[:-1], seq, seq[1:] + seq[:1])
  12. )
  13. ans1 = max(calc(combo) for combo in itertools.permutations(people))
  14. ans2 = max(calc(combo) for combo in itertools.permutations(people | {'me'}))