summaryrefslogtreecommitdiff
path: root/2025/02
diff options
context:
space:
mode:
Diffstat (limited to '2025/02')
-rwxr-xr-x2025/02/python.py33
1 files changed, 0 insertions, 33 deletions
diff --git a/2025/02/python.py b/2025/02/python.py
deleted file mode 100755
index a3b4d1e..0000000
--- a/2025/02/python.py
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env python3
-
-
-from itertools import accumulate
-from bisect import bisect_left, bisect_right
-from functools import cache
-
-rs = [(int(a), int(b)) for r in input().split(",") for [a, b] in [r.split("-")]]
-N = max(len(str(x)) for r in rs for x in r)
-
-
-@cache
-def memo(p2: bool):
- ids = sorted(
- {
- int(str(n) * reps)
- for n in range(10 ** (N // 2))
- for reps in range(2, N // len(str(n)) + 1 if p2 else 3)
- }
- )
- sums = list(accumulate(ids))
- return ids[1:], sums
-
-
-def prefix_sum(a: int, b: int, ids: list[int], sums: list[int]):
- return sums[bisect_right(ids, b)] - sums[bisect_left(ids, a)]
-
-
-silver = sum(prefix_sum(*r, *memo(False)) for r in rs)
-gold = sum(prefix_sum(*r, *memo(True)) for r in rs)
-
-print("silver:", silver)
-print("gold:", gold)