diff options
| author | mhsn <mail@mhsn.net> | 2026-03-18 21:48:13 +0000 |
|---|---|---|
| committer | mhsn <mail@mhsn.net> | 2026-03-18 21:48:13 +0000 |
| commit | 86bac31392a76da84817eec020d2b84d099b3cc1 (patch) | |
| tree | e2ee52db59b86b914d5b4bcceb19c9b5d899fff4 /2025/05/python.py | |
| parent | 62fe361fc42dea75deaf7ac31c0ba6ba80e26a9c (diff) | |
| download | puzzles-86bac31392a76da84817eec020d2b84d099b3cc1.tar.gz puzzles-86bac31392a76da84817eec020d2b84d099b3cc1.zip | |
Diffstat (limited to '2025/05/python.py')
| -rwxr-xr-x | 2025/05/python.py | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/2025/05/python.py b/2025/05/python.py deleted file mode 100755 index 9977623..0000000 --- a/2025/05/python.py +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env python3 - -from itertools import takewhile -from fileinput import input - - -inp = map(str.strip, input()) -rs = [tuple(map(int, r.split("-"))) for r in takewhile(bool, inp)] -ids = list(map(int, inp)) - - -def add(a: int, b: int, c: int, d: int) -> tuple[int, int] | None: - if c < a: - return add(c, d, a, b) - if b < c: - return None - return (a, max(b, d)) - - -done = False -while not done: - ms = [] - for r in rs: - for idx, m in enumerate(ms): - if new := add(*r, *m): - ms[idx] = new - break - - else: - ms.append(r) - done = len(rs) == len(ms) - rs = ms - - -silver = sum(1 for i in ids if any(lo <= i <= hi for lo, hi in rs)) -gold = sum(b - a + 1 for a, b in rs) - -print("silver:", silver) -print("gold:", gold) |
