def find_pair_sum(number, series): i = 0 j = len(series) - 1 series.sort() current = series[i] + series[j] while i < j: current = series[i] + series[j] if current == number: return True if current < number: i += 1 if current > number: j -= 1 return False def find_contiguous_sum(number, series): current = 0 i = 0 j = 0 while current != number: if current < number: j += 1 elif current > number: i += 1 current = sum(series[i:j]) return series[i:j] def solve_a(data): for i in range(25, len(data)): number = data[i] if not find_pair_sum(number, data[i-25:i]): return number def solve_b(number, data): series = find_contiguous_sum(number, data) series.sort() return series[0] + series[-1] data = [int(line.strip()) for line in open('input')] result = solve_a(data) print(result) print(solve_b(result, data))