Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- x1, y1 = map(int, input().split())
- x2, y2 = map(int, input().split())
- grid = [[(0, 0)] * (n+1) for _ in range(n+1)]
- q = [(x1, y1)]
- grid[x1][y1] = (-1, -1)
- while q:
- x, y = q.pop(0)
- if x == x2 and y == y2:
- break
- for xp, yp in [(x+2, y+1), (x+2, y-1), (x-2, y+1), (x-2, y-1), (x+1, y+2), (x+1, y-2), (x-1, y+2), (x-1, y-2)]:
- if 1 <= xp <= n and 1 <= yp <= n and grid[xp][yp] == (0, 0):
- q.append((xp, yp))
- grid[xp][yp] = (x, y)
- count = 0
- path = [(x, y)]
- while x != x1 or y != y1:
- x, y = grid[x][y]
- path.append((x, y))
- count += 1
- print(count)
- for x, y in path[::-1]:
- print(f'{x} {y}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement