#P1915. Knight Moves
Knight Moves
背景
索穆罗洛夫先生无疑是一位卓越的国际象棋玩家,他断言无人能像他一样快速将骑士(马)从一个位置移动到另一个位置。你能战胜他吗?
问题
你的任务是编写一个程序,计算骑士从起始位置到达目标位置的最少移动次数,从而获得比索穆罗洛夫更快的机会。
对于不熟悉国际象棋的人,骑士的可能移动方式如图1所示(注:骑士走"日"字,即横向两格纵向一格或纵向两格横向一格的L型移动)。
输入的第一行是一个整数,表示测试用例的数量。
接下来有个测试用例,每个测试用例包含三行整数:
- 第一行给出棋盘的边长(),棋盘大小为。
- 第二行和第三行分别是两个整数对,表示骑士的起始位置和目标位置,整数间用单个空格分隔。保证这些位置在对应棋盘上有效。
对于每个测试用例,计算骑士从起始位置到目标位置的最少移动次数。若起始与目标位置相同,移动次数为。结果需单独一行输出。
输入数据
3
8
0 0
7 0
100
0 0
30 50
10
1 1
1 1
输出数据
5
28
0