测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A71417. 三角魔方

编程题 提高

题目描述

有一个三角形的魔方,初始时,三角形中按行依次填有 A-P16 个字母。魔方每次可以选择某个下图箭头所示的方向进行一次 “旋转” 操作。

共有 3 种合法的 “旋转” 方向,分别对应图中左上(红色箭头)、左下(蓝色箭头)、正右(绿色箭头)三个方向,分别记做 UDR

每次 “旋转” 操作选择该方向上含有一、三、五或七个字母的一行(或列),分别记做1357 。 将不同的方向和行(或列)组合得到十二种合法的 “旋转” 操作,例如:U1D7R3

“旋转” 操作会将该行/列的所有字母向对应箭头方向循环移动一格,第一个字母变成第二个字母、第二个字母变成第三个字母……最后一个字母变成第一个字母,以此类推,例如:

如果我们将三角形魔方写成 “字母三角形” 的形式,那么初始状态就是:

   A
  BCD
 EFGHI
JKLMNOP

如果对初始状态进行两次 U5 旋转,将会得到:

   A
  GCD
 EMNHI
JKLBFOP

现在,你得到了一个魔方旋转机器人,它可以输入一个操作序列,然后将这个操作序列重复a^bab 次方,即 a \times a \times a \times \dots \times a ,共 ba 相乘)次。但让机器人旋转魔方实在太耗时了。你能预测出从初始状态开始,执行完机器人的动作后魔方的状态吗?

输入格式

第一行输入一个字符串,代表了一个操作序列。

第二行输入两个整数 a,b ,代表机器人会将操作序列重复 a^b 次。

输出格式

输出 16 个字符,为操作序列重复后的魔方的状态,按行依次输出所有字母,例如初始状态输出 “ABCDEFGHIJKLMNOP”。

输入输出样例

输入 #1
U3R5D7
5 2
输出 #1
EJLDHACBFKGIMNOP
输入 #2
U3U5U7
105 3
输出 #2
ABCDEFGHIJKLMNOP
输入 #3
R3R5R7U3U5U7D3D5D7D7
2 128
输出 #3
KBPDECGHIJFLMNOA

说明/提示

【数据规模】

对于 50\% 的数据, b=1

对于 100\% 的数据,1 ≤ a,b ≤ 1,000 。操作序列中 “旋转” 操作的数量不超过 100