UVA197 Cube
题目描述
有一个由27个小立方体构成的3*3*3的大立方体,它碎成了七个部分
[图片一]:这七个碎片构成一个大立方体
这七个碎片可以通过多种方式组合成大立方体,图二显示了其中两种可能性,其中第一个正方形表示前面的面,第二个表示中间的面,最后一个表示后面的面(译者注:详见图三),小方格中的字母表示七个部分在其中对应的位置,七个碎片的名字可以在图一中找到。
[图片二]:两种组合方块的可能
你要编一个程序输出所有组合成大立方体的可能性,但是不要输出仅仅是其他答案的翻转的答案。
输入格式
输入文件会有几个的测试数据,每个测试数据显示了碎片a的初始位置,你可以翻译它,但绝对不可以翻转它。
输出格式
对于每一个解,你需要输出一行含答案的字符串,这个字符串是线性化的大立方体,每个字母表示七个部分在其中对应的位置,它是以以下方式进行线性化的:
*字符串由前中后三个面的子字符串表示;
*每个子字符串由顶中底三行的子字符串表示;
*每个行的子字符串由左中右的字符表示;
图二的解应当由这样表示:
adcaccaacddgbfgffedggbfebee
aababbadcffegfcddcfeeggedgc
用图一中的命名约定和像上面的例子一样的线性化方式是很重要的。
每个答案后换行。
[图片三]:字符串方格中的位置
图三再一次显示了大立方体中的小方格如何线性化。
提示:碎片a是唯一的不能通过翻转转变成自己的碎片,避免顺序上找到的解只是其他找到的解的翻转,你应该限制碎片a的转变形式。