summaryrefslogtreecommitdiff
path: root/2025/01/python.py
diff options
context:
space:
mode:
Diffstat (limited to '2025/01/python.py')
-rwxr-xr-x2025/01/python.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/2025/01/python.py b/2025/01/python.py
index 2ba0bbd..d5ff1fa 100755
--- a/2025/01/python.py
+++ b/2025/01/python.py
@@ -3,12 +3,13 @@
from fileinput import input
from itertools import accumulate
-lines = [line.strip() for line in input()]
-add = lambda p, m: (p + int(m[1:]) * ((m[0] == "R") * 2 - 1)) % 100
+def fn(p: tuple[int, int], rot: str) -> tuple[int, int]:
+ x = p[0] + int(rot[1:]) * (1 if rot[0] == "R" else -1)
+ return x % 100, abs(x) // 100 + (p[0] and x <= 0)
-silver = sum(p == 0 for p in accumulate(lines, add, initial=50))
-gold = 0
-print("silver:", silver)
-print("gold:", gold)
+p1, p2 = zip(*list(accumulate(input(), fn, initial=(50, 0))))
+
+print(f"silver: {sum(not p for p in p1)}")
+print(f"gold: {sum(p2)}")