19_tubes.py 609 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env python3
  2. import sys
  3. grid = sys.stdin.read().split('\n')
  4. y = 0
  5. x = grid[0].index('|')
  6. dy = 1
  7. dx = 0
  8. seen = ''
  9. steps = 0
  10. while grid[y][x] != ' ':
  11. y += dy
  12. x += dx
  13. steps += 1
  14. cell = grid[y][x]
  15. if cell == '+':
  16. if dy and grid[y][x - 1] != ' ':
  17. dy, dx = 0, -1
  18. elif dy and grid[y][x + 1] != ' ':
  19. dy, dx = 0, 1
  20. elif dx and grid[y - 1][x] != ' ':
  21. dy, dx = -1, 0
  22. elif dx and grid[y + 1][x] != ' ':
  23. dy, dx = 1, 0
  24. elif ord('A') <= ord(cell) <= ord('Z'):
  25. seen += cell
  26. print(seen)
  27. print(steps)