From 424ffd61c58eb127f9a657a854737e2d82368217 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Fri, 5 Dec 2025 06:39:31 +0100 Subject: Day 5 2025 --- 2025/05/b.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 2025/05/b.py (limited to '2025/05/b.py') diff --git a/2025/05/b.py b/2025/05/b.py new file mode 100644 index 0000000..09bc5e4 --- /dev/null +++ b/2025/05/b.py @@ -0,0 +1,26 @@ +import fileinput + +def overlap(r1, r2): + return min(r1[1], r2[1]) >= max(r1[0], r2[0]) + +def fuse(r1, r2): + return (min(r1[0], r2[0]), max(r1[1], r2[1])) + +ranges = [] +with fileinput.input() as lines: + for line in lines: + if line == '\n': + break + i = line.find('-') + ranges.append((int(line[:i]), int(line[i+1:-1]))) + +s = set() +for r in ranges: + c = r + for rr in list(s): + if overlap(c, rr): + c = fuse(c, rr) + s.remove(rr) + s.add(c) + +print(sum(r[1] - r[0] + 1 for r in s)) -- cgit v1.3