Guest User

Untitled

a guest
Nov 14th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. def subset_sum(vals, target=0):
  2. sums = {0: [()]}
  3. if target in sums:
  4. yield from sums[target]
  5. for val in vals:
  6. items = sums.items()
  7. sums = dict(items)
  8. for prev_sum, prev_subsets in items:
  9. sum_ = prev_sum + val
  10. subsets = [s + (val,) for s in prev_subsets]
  11. sums[sum_] = sums.get(sum_, []) + subsets
  12. if sum_ <= target:
  13. yield from subsets
  14.  
  15. h = int(input())
  16. lista = []
  17. for subset in subset_sum([14,20,14,20,14,20,14,20], h):
  18. lista.append(list(subset))
  19.  
  20. a = set(map(tuple,lista))
  21. b = map(list,a)
  22.  
  23. for i in b:
  24. print(i)
Add Comment
Please, Sign In to add comment