From 39e9d936f52c7626884d1ca4c5262b117b0dc85c Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 3 Dec 2025 06:22:35 +0100 Subject: Day 3 2025 --- 2025/03/a.py | 16 ++++++++++++++-- 2025/03/b.py | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 2025/03/b.py (limited to '2025/03') diff --git a/2025/03/a.py b/2025/03/a.py index 5fdb11b..9f4db62 100644 --- a/2025/03/a.py +++ b/2025/03/a.py @@ -1,6 +1,18 @@ import fileinput +s = 0 with fileinput.input() as lines: for line in lines: - ... - + m1 = 0 + m2 = 0 + mi = -1 + for i in range(len(line)-2): + if int(line[i]) > m1: + m1 = int(line[i]) + mi = i + for i in range(mi+1, len(line)-1): + if int(line[i]) > m2: + m2 = int(line[i]) + print(10*m1+m2) + s += 10*m1+m2 +print(s) diff --git a/2025/03/b.py b/2025/03/b.py new file mode 100644 index 0000000..4c74ae6 --- /dev/null +++ b/2025/03/b.py @@ -0,0 +1,18 @@ +import fileinput +from functools import cache + +neginf = -1e13 + +@cache +def joltage(line, n): + if n == 0: + return 0 + if n > len(line)-1: + return neginf + j = 0 + for i in range(len(line)-1): + j = max(j, int(line[i])*10**(n-1)+joltage(line[i+1:],n-1)) + return j + +with fileinput.input() as lines: + print(sum(joltage(line, 12) for line in lines)) -- cgit v1.3