Files
python-aoc-2023/day09/part3.py
Sebastian Seedorf 23207cd0b7 Day 09 (Part 3)
2023-12-10 02:01:12 +01:00

21 lines
703 B
Python

#!/usr/bin/env python3
import math
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[0] if i == 0 else combinations[i-1]-combinations[i] for i in range(len(combinations))]
result += numbers[-1]
print(result)
print(result == 209183938389133193643668550962121882909751535)