38 lines
714 B
Python
38 lines
714 B
Python
def load_data(filename="input"):
|
|
with open(filename, "r") as fp:
|
|
lines = fp.read().splitlines()
|
|
|
|
ret = []
|
|
|
|
for line in lines:
|
|
splits = line.split(": ")
|
|
test_value = int(splits[0])
|
|
nums = list(map(int, splits[1].split(" ")))
|
|
|
|
#print(test_value)
|
|
#print(nums)
|
|
#print()
|
|
|
|
ret.append((test_value, nums))
|
|
|
|
return ret
|
|
|
|
def recurse_it_all(nums):
|
|
def s(start, nums):
|
|
if len(nums) == 1:
|
|
return [start + nums[0], start * nums[0]]
|
|
return s(start + nums[0], nums[1:]) + s(start * nums[0], nums[1:])
|
|
|
|
return s(nums[0], nums[1:])
|
|
|
|
if __name__ == "__main__":
|
|
data = load_data()
|
|
|
|
total = 0
|
|
|
|
for test_value, nums in data:
|
|
if test_value in recurse_it_all(nums):
|
|
total += test_value
|
|
|
|
print(total)
|