No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

37 líneas
854B

  1. import itertools
  2. def flash(k, flashed_this_round):
  3. state[k] = 0
  4. for p in (k + step for step in D8):
  5. if p in state and p not in flashed_this_round:
  6. state[p] += 1
  7. state = {}
  8. for y, line in enumerate(open(0)):
  9. for x, char in enumerate(line[:-1]):
  10. state[complex(x, y)] = int(char)
  11. D8 = [dx + dy for dx in [1, 0, -1] for dy in [1j, 0, -1j] if dx + dy]
  12. ans1 = 0
  13. for i in itertools.count(1):
  14. for k in state:
  15. state[k] += 1
  16. flashed_this_round = set()
  17. while any(v > 9 for v in state.values()):
  18. for k, v in state.items():
  19. if v > 9:
  20. flash(k, flashed_this_round)
  21. flashed_this_round.add(k)
  22. if i <= 100:
  23. ans1 += len(flashed_this_round)
  24. if len({v for v in state.values()}) == 1:
  25. ans2 = i
  26. break
  27. print(ans1)
  28. print(ans2)