Files
python-aoc-2023/day09/part3.py
Sebastian Seedorf 85c6077313 Day 09 (Part 3)
2023-12-10 12:46:49 +01:00

19 lines
676 B
Python

#!/usr/bin/env python3
from math import comb
from tqdm import tqdm
lines = (x.strip() for x in open("input.txt"))
result = 0
for line in tqdm(lines, total=200):
numbers = [int(x) for x in line.split(" ")]
combinations = [((idx+len(numbers))%2*2-1) * comb(len(numbers), idx) for idx in range(len(numbers))]
for _ in range(365*5):
numbers.append(sum(factor*val for factor, val in zip(combinations, numbers)))
combinations.append(-1)
combinations = [(combinations[i-1] if i > 0 else 0)-combinations[i] for i in range(len(combinations))]
result += numbers[-1]
print(result)
print(result == 209183938389133193643668550962121882909751535)