问题 M: 单人跳棋

问题 M: 单人跳棋

时间限制: 1 Sec  内存限制: 256 MB
提交: 16  解决: 1
[提交] [状态] [讨论版] [命题人:]

题目描述

单人纸牌游戏是一种在8x8的棋盘上玩的游戏。棋盘的行和列分别从上到下和从左到右编号为1到8。

黑板上有四个完全相同的部分。在每一次移动中它可以:

将一块移动到相邻的空字段(上、下、左、右),
跳过相邻的一块到一个空的领域(上,下,左、右)。

在上面所示的配置中,每个部件允许移动4次。例如:第4行第4列的可以上移一行,下移两行,左移一列或右移两列。

请写一个程序:

从输入中读取两个棋盘布局,在最多8步内验证第一个是否可达第二个,


输入

多组测试数据
输入n表示n组
每组输入数据由两行组成
每个输入行包含8个整数a1, a2,…, a8,用单个空格隔开,描述了棋盘上棋子的一种构型。整数a2j-1和a2j j(1 < = j< = 4)描述一块的位置,分别行号和列号。

输出

对于每组数据,如果第一个输入行中描述的布局到第二个输入行中描述的布局最多需要8步,那么输出应该包含一个单词YES,否则包含一个单词NO。

样例输入

1
4 4 4 5 5 4 6 5
2 4 3 3 3 6 4 6

样例输出

YES

[提交][状态]