SP1695 GRC - Grandpa’s Rubik Cube
题目描述
魔方是一种非常著名的益智玩具,如图 1a 所示。图中的字母代表不同的颜色(例如,B 表示蓝色,R 表示红色,等等)。游戏的目标是通过旋转魔方的各个面,使得每个面最终显示出一致的颜色,如图 1b 所示。需要注意的是,

当你旋转魔方的一面时,所有与之相邻面的颜色排列同时会发生变化。图 2 展示了某一面的旋转过程。对于一个随机打乱的魔方配置,要想复原到最终状态并非易事,这一点你可能很清楚。

不过,你的爷爷具有丰富的经验,他声称无论面临什么样的魔方配置,他总能找出一系列旋转操作,使魔方达到胜利状态。为了方便观察魔方的每一个面,我们将它平铺展开成如图 3a 那样的形式。魔方的六种颜色是黄色、红色、蓝色、绿色、白色和洋红色(分别用首字母表示)。
你将会得到一个初始配置和一组旋转指令。每个旋转指令用一个整数表示,指明要旋转的面和旋转方向(正数表示顺时针,负数表示逆时针)。如图 3b 所示,魔方的面被编号标识。你需要编写一个程序,判断给定的一系列旋转操作是否能将魔方恢复到胜利状态。

输入格式
输入包含多组测试数据。第一行为一个整数,表示测试数据的数量。每组测试数据由十行组成。前九行描述一个初始魔方配置,其格式如图 3a 所示。第十行包含一组旋转操作,以 0 结尾。
输出格式
对于每组测试数据,你的程序应输出一行。如果爷爷的说法正确,输出 `Yes, grandpa!`,否则输出 `No, you are wrong!`。(参考示例)

**本翻译由 AI 自动生成**