From f0e81eadf75658eadbc3ce293ef6743b8fea8bc0 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Sat, 9 Dec 2023 10:07:25 +0000 Subject: day 9 --- 9.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 9.py diff --git a/9.py b/9.py new file mode 100644 index 0000000..a98d67a --- /dev/null +++ b/9.py @@ -0,0 +1,22 @@ +# pyright: strict +from sys import stdin + + +def predict_next(history: list[int]) -> int: + if all(e == 0 for e in history): + return 0 + return history[-1] + predict_next( + [a - b for a, b in zip(history[1:], history[:-1])] + ) + + +def predict_prev(history: list[int]) -> int: + if all(e == 0 for e in history): + return 0 + return history[0] - predict_prev([a - b for a, b in zip(history[1:], history[:-1])]) + + +histories = [[int(e) for e in l.rstrip().split()] for l in stdin] + +print(sum(predict_next(history) for history in histories)) +print(sum(predict_prev(history) for history in histories)) -- cgit v1.2.3-54-g00ecf