Tasks 01-14

This commit is contained in:
2021-12-14 21:06:45 +03:00
parent d8eee6a69d
commit 1c9a6c0a96
29 changed files with 7033 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
from collections import defaultdict
data = '''
5483143223
2745854711
5264556173
6141336146
6357385478
4167524645
2176841721
6882881134
4846848554
5283751526
'''.strip().split('\n')
with open("input") as f:
data = f.read().strip().split('\n')
data = [list(map(int, line)) for line in data]
N = len(data)*len(data[0])
d = defaultdict(lambda: -100000)
d.update({(i,j): x for i, row in enumerate(data) for j, x in enumerate(row)})
directions = {(x,y) for x in [-1,0,1] for y in [-1,0,1]}-{(0,0)}
s = 0
for _ in range(100):
for c, x in d.items():
d[c] = x+1
ready = set()
flashed = {c for c, x in d.items() if x>9 and c not in ready}
while flashed:
s += len(flashed)
ready = ready | flashed
for i, j in flashed:
for di, dj in directions:
d[(i+di, j+dj)] += 1
flashed = {c for c, x in d.items() if x>9 and c not in ready}
for c in ready:
d[c] = 0
print(s)
step = 0
ready = set()
flashed = {c for c, x in d.items() if x>9 and c not in ready}
while flashed:
ready = ready | flashed
for i, j in flashed:
for di, dj in directions:
d[(i+di, j+dj)] += 1
flashed = {c for c, x in d.items() if x>9 and c not in ready}
while len(ready)!=N:
for c in ready:
d[c] = 0
step += 1
for c, x in d.items():
d[c] = x+1
ready = set()
flashed = {c for c, x in d.items() if x>9 and c not in ready}
while flashed:
ready = ready | flashed
for i, j in flashed:
for di, dj in directions:
d[(i+di, j+dj)] += 1
flashed = {c for c, x in d.items() if x>9 and c not in ready}
print(step+100)
+10
View File
@@ -0,0 +1,10 @@
8826876714
3127787238
8182852861
4655371483
3864551365
1878253581
8317422437
1517254266
2621124761
3473331514