from itertools import combinations
def subset(numbers):
for i in range(len(numbers)):
combos = list(combinations(numbers , i))
combos = convert_tuple(combos)
for i in combos:
chkzro = sum(i)
if chkzro == 0 and len(i) > 1:
print(i , "is a 0 sum subset")
return True
break
else:
continue
break
def convert_tuple(tup):
if type(tup) == list or type(tup) == tuple:
return [convert_tuple(i) for i in tup]
return tup
numbers = [[-97162, -95761, -94672, -87254, -57207, -22163, -20207, -1753, 11646, 13652, 14572, 30580, 52502, 64282, 74896, 83730, 89889, 92200] ,
[-93976, -93807, -64604, -59939, -44394, -36454, -34635, -16483, 267, 3245, 8031, 10622, 44815, 46829, 61689, 65756, 69220, 70121] ,
[-83964, -81834, -78386, -70497, -69357, -61867, -49127, -47916, -38361, -35772, -29803, -15343, 6918, 19662, 44614, 66049, 93789, 95405] ,
[-94624, -86776, -85833, -80822, -71902, -54562, -38638, -26483, -20207, -1290, 12414, 12627, 19509, 30894, 32505, 46825, 50321, 69294]]
for i in numbers:
subset(i)
if not subset(i):
print("None found in" , i)
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvbWJpbmF0aW9ucwoKZGVmIHN1YnNldChudW1iZXJzKToKICAgIGZvciBpIGluIHJhbmdlKGxlbihudW1iZXJzKSk6CiAgICAgICAgY29tYm9zID0gbGlzdChjb21iaW5hdGlvbnMobnVtYmVycyAsIGkpKQogICAgICAgIGNvbWJvcyA9IGNvbnZlcnRfdHVwbGUoY29tYm9zKQogICAgICAgIGZvciBpIGluIGNvbWJvczoKICAgICAgICAgICAgY2hrenJvID0gc3VtKGkpCiAgICAgICAgICAgIGlmIGNoa3pybyA9PSAwIGFuZCBsZW4oaSkgPiAxOgogICAgICAgICAgICAgICAgcHJpbnQoaSAsICJpcyBhIDAgc3VtIHN1YnNldCIpCiAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIGJyZWFrCgoKZGVmIGNvbnZlcnRfdHVwbGUodHVwKToKICAgIGlmIHR5cGUodHVwKSA9PSBsaXN0IG9yIHR5cGUodHVwKSA9PSB0dXBsZToKICAgICAgICByZXR1cm4gW2NvbnZlcnRfdHVwbGUoaSkgZm9yIGkgaW4gdHVwXQogICAgcmV0dXJuIHR1cAoKCm51bWJlcnMgPSBbWy05NzE2MiwgLTk1NzYxLCAtOTQ2NzIsIC04NzI1NCwgLTU3MjA3LCAtMjIxNjMsIC0yMDIwNywgLTE3NTMsIDExNjQ2LCAxMzY1MiwgMTQ1NzIsIDMwNTgwLCA1MjUwMiwgNjQyODIsIDc0ODk2LCA4MzczMCwgODk4ODksIDkyMjAwXSAsCiAgICAgICAgICAgIFstOTM5NzYsIC05MzgwNywgLTY0NjA0LCAtNTk5MzksIC00NDM5NCwgLTM2NDU0LCAtMzQ2MzUsIC0xNjQ4MywgMjY3LCAzMjQ1LCA4MDMxLCAxMDYyMiwgNDQ4MTUsIDQ2ODI5LCA2MTY4OSwgNjU3NTYsIDY5MjIwLCA3MDEyMV0gLAogICAgICAgICAgICBbLTgzOTY0LCAtODE4MzQsIC03ODM4NiwgLTcwNDk3LCAtNjkzNTcsIC02MTg2NywgLTQ5MTI3LCAtNDc5MTYsIC0zODM2MSwgLTM1NzcyLCAtMjk4MDMsIC0xNTM0MywgNjkxOCwgMTk2NjIsIDQ0NjE0LCA2NjA0OSwgOTM3ODksIDk1NDA1XSAsCiAgICAgICAgICAgIFstOTQ2MjQsIC04Njc3NiwgLTg1ODMzLCAtODA4MjIsIC03MTkwMiwgLTU0NTYyLCAtMzg2MzgsIC0yNjQ4MywgLTIwMjA3LCAtMTI5MCwgMTI0MTQsIDEyNjI3LCAxOTUwOSwgMzA4OTQsIDMyNTA1LCA0NjgyNSwgNTAzMjEsIDY5Mjk0XV0KCmZvciBpIGluIG51bWJlcnM6CiAgICBzdWJzZXQoaSkKICAgIGlmIG5vdCBzdWJzZXQoaSk6CiAgICAgICAgcHJpbnQoIk5vbmUgZm91bmQgaW4iICwgaSk=
[-97162, -95761, -22163, 14572, 52502, 64282, 83730] is a 0 sum subset
[-97162, -95761, -22163, 14572, 52502, 64282, 83730] is a 0 sum subset
[-93807, -64604, -59939, -44394, -36454, 267, 10622, 44815, 46829, 61689, 65756, 69220] is a 0 sum subset
[-93807, -64604, -59939, -44394, -36454, 267, 10622, 44815, 46829, 61689, 65756, 69220] is a 0 sum subset
None found in [-83964, -81834, -78386, -70497, -69357, -61867, -49127, -47916, -38361, -35772, -29803, -15343, 6918, 19662, 44614, 66049, 93789, 95405]
None found in [-94624, -86776, -85833, -80822, -71902, -54562, -38638, -26483, -20207, -1290, 12414, 12627, 19509, 30894, 32505, 46825, 50321, 69294]