day 9
This commit is contained in:
parent
ad0e906acf
commit
6578f5c5b7
1 changed files with 40 additions and 0 deletions
40
09/09.py
Normal file
40
09/09.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import itertools
|
||||
|
||||
def testvalid(numbers, i):
|
||||
for a, b in itertools.combinations(numbers, 2):
|
||||
if a + b == i:
|
||||
#print('ok: ',a,b,)
|
||||
return True
|
||||
return False
|
||||
|
||||
def findcontig(numbers, i):
|
||||
for start in range(len(numbers)-1):
|
||||
c = 0
|
||||
for end in range(start, len(numbers)):
|
||||
c = c + numbers[end]
|
||||
if c == i:
|
||||
return sorted(numbers[start:end+1])
|
||||
return None
|
||||
|
||||
preamble = 25
|
||||
numbers = []
|
||||
allnum = []
|
||||
bad = None
|
||||
|
||||
for line in sys.stdin:
|
||||
i = int(line.rstrip())
|
||||
if len(numbers) >= preamble:
|
||||
if not testvalid(numbers, i):
|
||||
bad = i
|
||||
numbers.pop(0)
|
||||
|
||||
numbers.append(i)
|
||||
allnum.append(i)
|
||||
|
||||
print(1, bad)
|
||||
|
||||
cont = findcontig(allnum, bad)
|
||||
print(2,cont[0] + cont[-1])
|
Loading…
Add table
Add a link
Reference in a new issue