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)
|