{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"\u003cspan lang\u003d\"en-us\"\u003e\u003cp\u003e让我们玩一个谜题,使用八个立方体放置在一个 3 × 3 的棋盘上,留下一个空方块。\u003c/p\u003e\u003cp\u003e立方体的面涂有三种颜色。作为谜题步骤,您可以将其中一个立方体滚动到相邻的空方块上。您的目标是通过若干步骤使指定的颜色图案从上方可见。\u003c/p\u003e\u003cp\u003e这个谜题的规则如下。\u003c/p\u003e\u003col\u003e\u003cli\u003e\u003cp\u003e\u003cb\u003e立方体的涂色:\u003c/b\u003e 所有立方体都以图1所示的方式涂色。相对的两个面颜色相同。\u003c/p\u003e\u003cdiv align\u003d\"center\"\u003e\u003cimg src\u003d\"CDN_BASE_URL/8d6bab0cad43b8c8ebfc9759de8f80ff?v\u003d1705644591\"\u003e\u003c/div\u003e\u003cp align\u003d\"center\"\u003e图1:立方体的涂色\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cb\u003e初始棋盘状态:\u003c/b\u003e 八个立方体放置在 3 × 3 的棋盘上,留下一个空方块。所有立方体的初始朝向都如图2所示。如图所示,棋盘上的方块给定了 \u003ci\u003ex\u003c/i\u003e 和 \u003ci\u003ey\u003c/i\u003e 坐标,(1, 1), (1, 2), …, 和 (3, 3)。初始空方块的位置可能有所不同。\u003c/p\u003e\u003cdiv align\u003d\"center\"\u003e\u003cimg src\u003d\"CDN_BASE_URL/fd47a00110ee4ff4a0e7fccabf38957a?v\u003d1705644591\"\u003e\u003c/div\u003e\u003cp align\u003d\"center\"\u003e图2:初始棋盘状态\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cb\u003e滚动立方体:\u003c/b\u003e 每一步,我们可以选择一个与空方块相邻的立方体,并将其滚动到空方块上,原位置留空。图3显示了一个例子。\u003c/p\u003e\u003cdiv align\u003d\"center\"\u003e\u003cimg src\u003d\"CDN_BASE_URL/d18427112a23e30db911ab80ea80837f?v\u003d1705644591\"\u003e\u003c/div\u003e\u003cp align\u003d\"center\"\u003e图3:滚动一个立方体\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003e\u003cb\u003e目标:\u003c/b\u003e 这个谜题的目标是通过上述滚动立方体的步骤,排列立方体,使它们的顶部面呈现出指定的颜色图案。\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e\u003cp\u003e您的任务是编写一个程序,找到从给定的初始状态到达指定颜色图案所需的最小步数。\u003c/p\u003e\u003c/span\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cspan lang\u003d\"en-us\"\u003e\u003cp\u003e输入是一系列数据集。输入的结束由包含两个用空格分隔的零的一行表示。数据集的数量小于16。每个数据集的格式如下。\u003c/p\u003e\u003cblockquote\u003e\u003ctable border\u003d\"0\" width\u003d\"120\" id\u003d\"table1\"\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003ex\u003c/i\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003ey\u003c/i\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e11\u003c/sub\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e21\u003c/sub\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e31\u003c/sub\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e12\u003c/sub\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e22\u003c/sub\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e32\u003c/sub\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e13\u003c/sub\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e23\u003c/sub\u003e\u003c/td\u003e\u003ctd width\u003d\"33%\"\u003e\u003ci\u003eF\u003c/i\u003e\u003csub\u003e33\u003c/sub\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003c/blockquote\u003e\u003cp\u003e第一行包含两个整数 \u003ci\u003ex\u003c/i\u003e 和 \u003ci\u003ey\u003c/i\u003e,用空格分隔,表示初始空方块的位置 (\u003ci\u003ex\u003c/i\u003e, \u003ci\u003ey\u003c/i\u003e)。 \u003ci\u003ex\u003c/i\u003e 和 \u003ci\u003ey\u003c/i\u003e 的值为1、2或3。\u003c/p\u003e\u003cp\u003e接下来的三行指定要制作的颜色图案。每行包含三个字符 \u003ci\u003eF\u003c/i\u003e\u003csub\u003e1\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e, \u003ci\u003eF\u003c/i\u003e\u003csub\u003e2\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e, 和 \u003ci\u003eF\u003c/i\u003e\u003csub\u003e3\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e,用空格分隔。字符 \u003ci\u003eF\u003csub\u003eij\u003c/sub\u003e\u003c/i\u003e 表示立方体在位置 (\u003ci\u003ei\u003c/i\u003e, \u003ci\u003ej\u003c/i\u003e) 的顶部颜色,如果有的话,如下所示:\u003c/p\u003e\u003cblockquote\u003e\u003cp\u003e\u003ccode\u003eB:\u003c/code\u003e 蓝色,\u003c/p\u003e\u003cp\u003e\u003ccode\u003eW:\u003c/code\u003e 白色,\u003c/p\u003e\u003cp\u003e\u003ccode\u003eR:\u003c/code\u003e 红色,\u003c/p\u003e\u003cp\u003e\u003ccode\u003eE:\u003c/code\u003e 方块为空。\u003c/p\u003e\u003c/blockquote\u003e\u003cp\u003e每个数据集中恰好有一个“\u003ccode\u003eE\u003c/code\u003e”字符。\u003c/p\u003e\u003c/span\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cspan lang\u003d\"en-us\"\u003e\u003cp\u003e对于每个数据集,当目标可以在30步内达到时,输出达到目标所需的最小步数。否则,对于数据集输出“\u003ccode\u003e-1\u003c/code\u003e”。\u003c/p\u003e\u003c/span\u003e"}},{"title":"样例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e1 2 \r\nW W W \r\nE W W \r\nW W W \r\n2 1 \r\nR B W \r\nR W W \r\nE W W \r\n3 3 \r\nW B W \r\nB R E \r\nR B R \r\n3 3 \r\nB W R \r\nB W R \r\nB E R \r\n2 1 \r\nB B B \r\nB R B \r\nB R E \r\n1 1 \r\nR R R \r\nW W W \r\nR R E \r\n2 1 \r\nR R R \r\nB W B \r\nR R E \r\n3 2 \r\nR R R \r\nW E W \r\nR R R\r\n0 0\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e0 \r\n3 \r\n13 \r\n23 \r\n29 \r\n30 \r\n-1 \r\n-1\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}