11_hexgrid.py 552 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env python3
  2. import sys
  3. from math import ceil
  4. steps = {
  5. 'nw': (-1, -.5),
  6. 'n': ( 0, -1.),
  7. 'ne': ( 1, -.5),
  8. 'sw': (-1, .5),
  9. 's': ( 0, 1.),
  10. 'se': ( 1, .5),
  11. }
  12. def walk(route):
  13. x = y = 0
  14. for step in route:
  15. dx, dy = steps[step]
  16. x += dx
  17. y += dy
  18. yield x, y
  19. def dist(x, y):
  20. x = abs(x)
  21. y = abs(y)
  22. return x + ceil(y - x * .5) if y > x else x
  23. # part 1
  24. route = sys.stdin.readline().rstrip().split(',')
  25. d = [dist(x, y) for x, y in walk(route)]
  26. print(d[-1])
  27. print(max(d))