From c0c0f809bb5b2327db96c7dbb5e9ef8ea5960b00 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Tue, 2 Dec 2025 06:15:47 +0100 Subject: Day 2 2025 (solved part 2 before part 1 because I misread lol) --- 2025/02/a.py | 13 ++++++++++++- 2025/02/b.py | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 2025/02/b.py (limited to '2025/02') diff --git a/2025/02/a.py b/2025/02/a.py index 5fdb11b..9c6fd84 100644 --- a/2025/02/a.py +++ b/2025/02/a.py @@ -1,6 +1,17 @@ import fileinput +def invalid(n): + return n[:len(n)//2] == n[len(n)//2:] + +s = 0 with fileinput.input() as lines: for line in lines: - ... + for r in line.split(","): + l = r.split("-"); + for n in range(int(l[0]), int(l[1])+1): + if invalid(str(n)): + print(n) + s += n +print(s) + diff --git a/2025/02/b.py b/2025/02/b.py new file mode 100644 index 0000000..8efdbe3 --- /dev/null +++ b/2025/02/b.py @@ -0,0 +1,25 @@ +import fileinput + +def invk(n, k): + for i in range(0, len(n)-k, k): + if n[i:i+k] != n[i+k:i+2*k]: + return False + return True + +def invalid(n): + for k in range(1, len(n)//2 + 1): + if invk(n, k): + return True + return False + +s = 0 +with fileinput.input() as lines: + for line in lines: + for r in line.split(","): + l = r.split("-"); + for n in range(int(l[0]), int(l[1])+1): + if invalid(str(n)): + s += n +print(s) + + -- cgit v1.3