#P1290. Grandpa's Rubik Cube
Grandpa's Rubik Cube
本题没有可用的提交语言。
描述
知名玩具/消遣“鲁比克魔方”(Rubik's Cube)由一个如图1a所示的立方体组成,其中字母代表颜色(如B为蓝色,R为红色,等等)。游戏目标是通过旋转魔方的各个面,使最终每个面均为单一颜色,如图1b所示。
需注意,旋转一个面时,所有相邻面的颜色排列也会随之改变。图2展示了其中一个面的旋转效果。如你所知,从混乱状态达到最终状态可能极具挑战性。
但你祖父拥有多年经验,并声称无论魔方处于何种状态,他都能通过一系列旋转操作达到胜利状态。为展示魔方的所有面,我们按图3a的方式表示魔方。六种颜色分别为黄色(Yellow)、红色(Red)、蓝色(Blue)、绿色(Green)、白色(White)和品红色(Magenta)(以首字母表示)。
给定一个初始状态和一组旋转操作,旋转操作由整数表示,数值的绝对值代表旋转的面(如图3b编号),符号代表方向(正数为顺时针,负数为逆时针)。你需要编写程序,判断这组旋转操作是否能使魔方达到胜利状态(每个面均为单一颜色)。
输入
输入包含多个测试用例。第一行是整数T,表示测试用例数量。每个测试用例包含10行输入:前9行描述初始状态(格式如图3a),第10行是旋转操作列表(以0结尾)。
输出
对每个测试用例,若旋转后能达到胜利状态,输出“Yes, grandpa!”;否则输出“No, you are wrong!”。
输入数据 1
3
G Y Y
G Y Y
G Y Y
W W W Y R R M M M G G B
W W W Y R R M M M G G B
W W W Y R R M M M G G B
R B B
R B B
R B B
-1 0
G Y Y
G Y Y
G Y Y
W W W Y R R M M M G G B
W M W Y R R M W M G G B
W W W Y R R M M M G G B
R B B
R B B
R B B
-1 0
M W M
W W G
W W Y
G Y Y M M B M B G W R B
B Y Y M M B M G G W R R
Y M G W B B R R G R R W
R Y Y
G B Y
R G B
+4 +6 -2 +3 -4 +2 -3 -6 0
输出数据 1
Yes, grandpa!
No, you are wrong!
Yes, grandpa!
来源
南美洲,2002