#C1555. J10 例题-8 骑士移动

J10 例题-8 骑士移动

J10 例题-8 骑士移动

题目描述

你的一个朋友正在研究旅行骑士问题,你要找到最短的封闭式骑士行棋路线,该路线要只能访问棋盘上给定的 nn 个方格中的每一个方格一次。他认为这个问题最困难的部分是确定两个给定方格之间最小的马步数,一旦你完成了这个任务,找到旅行就很容易了。 当然,你知道情况恰恰相反。所以你让他写一个程序来解决这个 "困难 "部分。

你的工作是编写一个程序,将两个方格 aabb 作为输入,然后确定从 aabb 的最短路线上的骑士移动次数。

输入格式

输入将包含一个或多个测试用例。每个测试用例由一行组成,包含两个用一个空格分隔的方块。一个方格是一个字符串,由代表棋盘上的列的字母(a-h)和代表行的数字(1-8)组成。

输出格式

对于每个测试案例,打印一行 "To get from xx to yy takes n knight moves."。

样例输入

e2 e4
a1 b2
b2 c3
a1 h8
a1 h7
h8 a1
b1 c3
f6 f6

样例输出

To get from e2 to e4 takes 2 knight moves.
To get from a1 to b2 takes 4 knight moves.
To get from b2 to c3 takes 2 knight moves.
To get from a1 to h8 takes 6 knight moves.
To get from a1 to h7 takes 5 knight moves.
To get from h8 to a1 takes 6 knight moves.
To get from b1 to c3 takes 1 knight moves.
To get from f6 to f6 takes 0 knight moves.

样例分析

如上所述。

数据范围

如上所述。