From 577a714d557270bdc1d87bdbe8f94b06aca0b8a8 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sun, 22 Dec 2024 12:40:44 +0100 Subject: k --- 2024/22/solve.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 2024/22/solve.py (limited to '2024/22') diff --git a/2024/22/solve.py b/2024/22/solve.py new file mode 100755 index 0000000..f6fe00f --- /dev/null +++ b/2024/22/solve.py @@ -0,0 +1,49 @@ +#!/bin/env python3 + +L = [int(l.strip()) for l in open("input").readlines()] + + +def evolve(n): + n ^= n * 64 + n %= 16777216 + + n ^= n // 32 + n %= 16777216 + + n ^= n * 2048 + n %= 16777216 + + return n + + +def part1(n): + for i in range(2000): + n = evolve(n) + return n + + +def part2(): + M = {} + for n in L: + diffs = [] + vals = [0] + for i in range(2000): + n = evolve(n) + s = n % 10 + diffs.append(s - vals[-1]) + vals.append(s) + + s = set() + for i in range(4, len(vals)): + r = tuple(diffs[i - 4 : i]) + if r not in s: + if r in M: + M[r] += vals[i] + else: + M[r] = vals[i] + s.add(r) + return M[max(M, key=M.get)] + + +print(sum(part1(n) for n in L)) +print(part2()) -- cgit v1.2.3