17_eggnog.py 551 B

123456789101112131415161718192021
  1. #!/usr/bin/env python3
  2. import sys
  3. from itertools import combinations
  4. def combs(boxes, cap):
  5. indices = list(range(len(boxes)))
  6. for l in range(len(boxes), 0, -1):
  7. fits = 0
  8. trynext = False
  9. for picks in combinations(indices, l):
  10. s = sum(boxes[i] for i in picks)
  11. if s == cap:
  12. fits += 1
  13. trynext |= s > cap
  14. if not trynext:
  15. break
  16. yield l, fits
  17. comb = list(combs(list(map(int, sys.stdin)), 150))
  18. print(sum(c[1] for c in comb))
  19. print(comb[-1][1])