summaryrefslogtreecommitdiff
path: root/2025/04/python.py
blob: 844c38e9feb7ec70f026411c30df813df27b6e33 (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
32
33
34
35
36
#!/usr/bin/env python3

from fileinput import input

g = {
    complex(x, y): ch
    for y, line in enumerate(input())
    for x, ch in enumerate(line.strip())
}


def accessible():
    return {
        p
        for p, x in g.items()
        if x == "@"
        and sum(
            1
            for dx in (-1, 0, 1)
            for dy in (-1j, 0j, 1j)
            if dx + dy != 0 and g.get(p + dx + dy, ".") == "@"
        )
        < 4
    }


silver = len(accessible())
gold = 0

while rem := accessible():
    gold += len(rem)
    for gone in rem:
        g.pop(gone)

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