Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

20 lines
485B

  1. from toolkit import product
  2. def combine(qtys):
  3. return [max(0, sum(a * b for a, b in zip(qtys, vs))) for vs in zip(*data)]
  4. data = [
  5. [int(n) for n in re.findall(r'-?\d+', ln)]
  6. for ln in df.read_text().splitlines()
  7. ]
  8. qtys = [
  9. combine([A, B, C, 100 - A - B - C])
  10. for A in range(101)
  11. for B in range(101 - A)
  12. for C in range(101 - A - B)
  13. ]
  14. ans1 = max(product(combo[:-1]) for combo in qtys)
  15. ans2 = max(product(combo[:-1]) for combo in qtys if combo[-1] == 500)