#439. 中国象棋

中国象棋

中国象棋博大精深,其中马的规则最为复杂,也是最难操控的一颗棋子。

我们都知道象棋中马走"日",比如在 (2,4)(2,4)位置的一个马,跳一步能到达的位置有(0,3)(0,5)(1,2)(1,6)(3,2)(3,6)(4,3)(4,5) (0,3),(0,5),(1,2),(1,6)*,(3,2),(3,6),(4,3),(4,5)

小明正在和小红下棋,小明正在进行战略布局,他需要把在 (x,y)(x,y) 位置的马跳到 (x,y)(x′,y′) 位置,以达到威慑的目的。

但是棋盘大小有限制,棋盘是一个 10×910×9 的网格,左上角坐标为 (0,0)(0,0),右下角坐标为 (9,8)(9,8),马不能走出棋盘,并且有些地方已经有了棋子,马也不能跳到有棋子的点。

小明想知道,在不移动其他棋子的情况下,能否完成他的战略目标。

输入格式

输入一共 1010 行,每行一个长度为 99 的字符串。

输入表示这个棋盘,我们用'.'表示空位置,用'#'表示该位置有棋子,用'S'表示初始的马的位置,用'T'表示马需要跳到的位置。

输入保证一定只存在一个'S'和一个'T'

输出格式

如果在不移动其他棋子的情况下,马能从'S'跳到'T',那么输出一行"Yes",否则输出一行"No"

输出时每行末尾的多余空格,不影响答案正确性

要求使用「文件输入输出」的方式解题,输入文件为 chess.in,输出文件为 chess.out

样例输入

.#....#S#
..#.#.#..
..##.#..#
......##.
...T.....
...#.#...
...#.....
...###...
.........
.##......

样例输出

Yes