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 --- 2024/20/python.py | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100755 2024/20/python.py (limited to '2024/20') diff --git a/2024/20/python.py b/2024/20/python.py deleted file mode 100755 index 610f1a3..0000000 --- a/2024/20/python.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python3 - -from fileinput import input - -grid = { - complex(idx, idy): c - for idy, line in enumerate(input()) - for idx, c in enumerate(line.strip()) -} -start = next(p for p, c in grid.items() if c == "S") -end = next(p for p, c in grid.items() if c == "E") - -times = {} -q = [(start, 0)] -while q: - curr, t = q.pop() - if curr in times: - continue - times[curr] = t - for d in [1, -1, 1j, -1j]: - x = curr + d - if x not in grid or grid[x] == "#": - continue - q.append((x, t + 1)) - - -def cheat(x, y, d): - dist = int(abs(x.real - y.real) + abs(x.imag - y.imag)) - if dist > d: - return False - saved = times[y] - times[x] - dist - return saved >= 100 - - -silver = sum(cheat(x, y, 2) for x in times.keys() for y in times.keys()) -gold = sum(cheat(x, y, 20) for x in times.keys() for y in times.keys()) - - -print("silver:", silver) -print("gold:", gold) -- cgit v1.2.3