From ee9ab89acf59028e1bd0d4e15ae8f981ed172533 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Wed, 11 Dec 2024 17:37:29 +0100 Subject: woah i'm back --- 2024/11/solve.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 2024/11/solve.py (limited to '2024/11') diff --git a/2024/11/solve.py b/2024/11/solve.py new file mode 100755 index 0000000..55cc50d --- /dev/null +++ b/2024/11/solve.py @@ -0,0 +1,34 @@ +#!/bin/env python + +stones = [int(d) for d in open("input").read().strip().split(" ")] + +cache = {} + + +def solve(n, stone): + if n == 0: + return 1 + + if (n, stone) in cache: + return cache[(n, stone)] + + sstone = str(stone) + if stone == 0: + res = solve(n - 1, 1) + elif len(sstone) % 2 == 0: + left = solve(n - 1, int(sstone[: len(sstone) // 2])) + right = solve(n - 1, int(sstone[len(sstone) // 2 :])) + res = left + right + else: + res = solve(n - 1, stone * 2024) + + cache[(n, stone)] = res + return res + + +part1 = 0 +part2 = 0 +for stone in stones: + part1 += solve(25, stone) + part2 += solve(75, stone) +print(part1, part2) -- cgit v1.2.3