mirror of
https://github.com/iritmaximus/tira.git
synced 2026-10-12 19:13:47 +03:00
32 lines
930 B
Python
32 lines
930 B
Python
import itertools
|
|
|
|
|
|
def calc_remaining_list(nums, comb):
|
|
l = nums.copy()
|
|
for x in comb:
|
|
l.remove(x)
|
|
return l
|
|
|
|
def check_sum(numbers):
|
|
print()
|
|
for i in range(1, len(numbers) + 1):
|
|
for x in itertools.combinations(numbers, i):
|
|
x = list(x)
|
|
|
|
remaining_list = calc_remaining_list(numbers, x)
|
|
print(x, sum(x), remaining_list, sum(remaining_list))
|
|
if (sum(x) == sum(remaining_list)):
|
|
return True
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
print(check_sum([1, 2, 3, 4])) # True
|
|
print(check_sum([1, 2, 3, 5])) # False
|
|
print(check_sum([0])) # True
|
|
print(check_sum([2, 2])) # True
|
|
print(check_sum([2, 4])) # False
|
|
print(check_sum([1, 5, 6, 3, 5])) # True
|
|
print(check_sum([1, 5, 5, 3, 5])) # False
|
|
print(check_sum([10**9, 2*10**9, 10**9])) # True
|
|
print(check_sum([1, 1, 1, 1, 1, 1, 1, 1, 1, 123])) # False
|