From 86bac31392a76da84817eec020d2b84d099b3cc1 Mon Sep 17 00:00:00 2001 From: mhsn Date: Wed, 18 Mar 2026 21:48:13 +0000 Subject: add other challenges support --- 2025/02/python.py | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100755 2025/02/python.py (limited to '2025/02') 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) -- cgit v1.2.3