Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def subset_sum(vals, target=0):
- sums = {0: [()]}
- if target in sums:
- yield from sums[target]
- for val in vals:
- items = sums.items()
- sums = dict(items)
- for prev_sum, prev_subsets in items:
- sum_ = prev_sum + val
- subsets = [s + (val,) for s in prev_subsets]
- sums[sum_] = sums.get(sum_, []) + subsets
- if sum_ <= target:
- yield from subsets
- h = int(input())
- lista = []
- for subset in subset_sum([14,20,14,20,14,20,14,20], h):
- lista.append(list(subset))
- a = set(map(tuple,lista))
- b = map(list,a)
- for i in b:
- print(i)
Add Comment
Please, Sign In to add comment