From 6dcf66699c5790aa81ec11f9c40ea6b4b1dab029 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 10 Dec 2024 23:52:20 -0700 Subject: Day 11 2024 --- 11_2024.py | 31 +++++++++++++++++++++++++++++++ data/11_2024.txt | 1 + 2 files changed, 32 insertions(+) create mode 100644 11_2024.py create mode 100644 data/11_2024.txt diff --git a/11_2024.py b/11_2024.py new file mode 100644 index 0000000..a67f8cf --- /dev/null +++ b/11_2024.py @@ -0,0 +1,31 @@ +input = "data/11_2024.txt" +data = open(input).read().strip() +data = [int(x) for x in data.split()] +dp = {} + + +def solve(x, t): + if (x, t) in dp: + return dp[(x, t)] + if t == 0: + res = 1 + elif x == 0: + res = solve(1, t - 1) + elif len(str(x)) % 2 == 0: + dstr = str(x) + left = dstr[: len(dstr) // 2] + right = dstr[len(dstr) // 2 :] + left, right = (int(left), int(right)) + res = solve(left, t - 1) + solve(right, t - 1) + else: + res = solve(x * 2024, t - 1) + dp[(x, t)] = res + return res + + +def solve_all(t): + return sum(solve(x, t) for x in data) + + +print(solve_all(25)) +print(solve_all(75)) diff --git a/data/11_2024.txt b/data/11_2024.txt new file mode 100644 index 0000000..e029d56 --- /dev/null +++ b/data/11_2024.txt @@ -0,0 +1 @@ +5688 62084 2 3248809 179 79 0 172169 -- cgit v1.2.3