Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

vor 3 Jahren
1234567891011121314151617181920212223242526
  1. def enhance(pos, cache={}):
  2. seq = tuple(image.get(pos + d, infinity) for d in D9)
  3. key = infinity, seq
  4. if key not in cache:
  5. cache[key] = alg[int(''.join({'.':'0', '#':'1'}[x] for x in seq), 2)]
  6. return cache[key]
  7. text = open(0).read()
  8. alg, text = text.split('\n\n')
  9. D9 = [dx + dy for dy in [-1j, 0, 1j] for dx in [-1, 0, 1]]
  10. image = {}
  11. for y, line in enumerate(text.splitlines()):
  12. for x, char in enumerate(line):
  13. image[complex(x, y)] = char
  14. X, Y = x, y
  15. for i in range(1, 50 + 1):
  16. infinity = '#.'[i % 2]
  17. image = {(x + y * 1j): enhance(x + y * 1j)
  18. for x in range(0 - 2 * i, X + 2 * i)
  19. for y in range(0 - 2 * i, Y + 2 * i)
  20. }
  21. if i in {2, 50}:
  22. print(sum(v == '#' for v in image.values()))