C1156 - 立方体上色

题目描述

我们有一台专门用来给立方体上色的机器。它提供了三种不同的颜色:蓝色(blue)、红色(red)和绿色(green)。
立方体的每个面都会被涂上其中一种颜色。立方体的面按图 1 中的编号进行标记。

1.png

【图 1】

由于一个立方体有 6 个面,我们的机器可以以 $3^6 = 729$ 种不同的方式为编号的立方体上色。
然而,如果忽略面上的编号,实际不同的上色方式要少得多,因为立方体可以旋转。请参见下面的示例。

我们用一个由 6 个字符组成的字符串表示一个被涂色的立方体,其中每个字符可以是 ‘b’(蓝色)、‘r’(红色)或 ‘g’(绿色)。
从左到右的第 $i$ 个字符($1 \leq i \leq 6$)表示第 $i$ 个面的颜色。例如,图 2 显示的是“rbgggr”,而图 3 对应的是“rggbgr”。
注意,这两个立方体实际上是用相同的方式涂色的:通过将立方体绕垂直轴旋转 90°,一个可以变成另一个。

2.png

【图 2】

3.png

【图 3】

输入格式

程序的输入是一个以标准文件结束符结尾(EOF)作为结束标志。

每一行是一个由 12 个字符组成的字符串。

前 6 个字符表示一个涂色立方体的表示法,后 6 个字符表示另一个立方体的表示法。

你的程序需要判断这两个立方体是否是以相同方式涂色的,也就是说,是否可以通过任意旋转组合将第一个立方体变换为第二个立方体。(不允许反射变换。)

输出格式

输出是一个布尔值文件。对于输入的每一行,如果第二部分可以通过旋转从第一部分获得,则输出 TRUE,否则输出 FALSE

样例 #1

样例输入 #1

rbgggrrggbgr
rrrbbbrrbbbr
rbgrbgrrrrrg

样例输出 #1

TRUE
FALSE
FALSE

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1156.in,输出文件名为:C1156.out