summaryrefslogtreecommitdiff
path: root/2025/07/python.py
blob: 639c36885d6ea565dcb2b0cb12703332a7089a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python3

from fileinput import input
from functools import cache

lines = [line.strip() for line in input()]
start = lines[0].index("S")

silver = 0
bs = {start}
for line in lines:
    for b in bs.copy():
        if line[b] == "^":
            silver += 1
            bs -= {b}
            bs |= {b - 1, b + 1}


@cache
def tls(r: int, c: int) -> int:
    if r == len(lines):
        return 1
    if lines[r][c] == "^":
        return tls(r, c - 1) + tls(r, c + 1)
    return tls(r + 1, c)


gold = tls(0, start)

print("silver:", silver)
print("gold:", gold)