29 lines
792 B
Python
29 lines
792 B
Python
from itertools import combinations
|
|
|
|
preamble_size = 25
|
|
|
|
numbers = []
|
|
with open("input.txt") as f:
|
|
numbers = list(int(num) for num in f.read().splitlines())
|
|
|
|
def getInvalidNumber():
|
|
for i in range(preamble_size, len(numbers)):
|
|
possible = False
|
|
for numberPair in combinations(numbers[i-preamble_size:i], 2):
|
|
if sum(numberPair) == numbers[i]:
|
|
possible = True
|
|
break
|
|
if not possible:
|
|
return numbers[i]
|
|
|
|
invalidNumber = getInvalidNumber()
|
|
found = False
|
|
for setSize in range(2, len(numbers)):
|
|
for setStart in range(0, len(numbers)-setSize, 1):
|
|
contiguos_set = numbers[setStart:setStart+setSize]
|
|
if sum(contiguos_set) == invalidNumber:
|
|
print(min(contiguos_set) + max(contiguos_set))
|
|
found = True
|
|
break
|
|
if found: break
|