aboutsummaryrefslogtreecommitdiff
path: root/2025/04
diff options
context:
space:
mode:
Diffstat (limited to '2025/04')
-rw-r--r--2025/04/a.py17
-rw-r--r--2025/04/b.py26
2 files changed, 42 insertions, 1 deletions
diff --git a/2025/04/a.py b/2025/04/a.py
index 5fdb11b..a693841 100644
--- a/2025/04/a.py
+++ b/2025/04/a.py
@@ -1,6 +1,21 @@
1import fileinput 1import fileinput
2 2
3def neigh(a, i, j):
4 return [
5 a[i-1][j-1], a[i-1][j], a[i-1][j+1],
6 a[i][j-1], a[i][j+1],
7 a[i+1][j-1], a[i+1][j], a[i+1][j+1],
8 ].count('@')
9
10s = 0
3with fileinput.input() as lines: 11with fileinput.input() as lines:
12 a = [['.'] * 200]
4 for line in lines: 13 for line in lines:
5 ... 14 a.append(['.'] + list(line.replace('\n', '.')))
15 a.append(['.'] * 200)
6 16
17for i in range(1,len(a)-1):
18 for j in range(1,len(a[1])-1):
19 if a[i][j] == '@' and neigh(a, i, j) < 4:
20 s += 1
21print(s)
diff --git a/2025/04/b.py b/2025/04/b.py
new file mode 100644
index 0000000..93b1fff
--- /dev/null
+++ b/2025/04/b.py
@@ -0,0 +1,26 @@
1import fileinput
2
3def neigh(a, i, j):
4 return [
5 a[i-1][j-1], a[i-1][j], a[i-1][j+1],
6 a[i][j-1], a[i][j+1],
7 a[i+1][j-1], a[i+1][j], a[i+1][j+1],
8 ].count('@')
9
10s = 0
11with fileinput.input() as lines:
12 a = [['.'] * 200]
13 for line in lines:
14 a.append(['.'] + list(line.replace('\n', '.')))
15 a.append(['.'] * 200)
16
17rem = True
18while rem:
19 rem = False
20 for i in range(1,len(a)-1):
21 for j in range(1,len(a[1])-1):
22 if a[i][j] == '@' and neigh(a, i, j) < 4:
23 s += 1
24 rem = True
25 a[i][j] = '.'
26print(s)

Generated with cgit - Back to sebastiano.tronto.net