2487 - 三角魔方

题目描述

有一个三角形的魔方,初始时,三角形中按行依次填有 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”。

样例

输入

U3R5D7
5 2

输出

EJLDHACBFKGIMNOP

输入

U3U5U7
105 3

输出

ABCDEFGHIJKLMNOP

输入

R3R5R7U3U5U7D3D5D7D7
2 128

输出

KBPDECGHIJFLMNOA
说明

【数据规模】

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

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

来源

2021 “信息与未来” ⼩学⽣夏令营编程活动

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 155
通过人数 83
金币数量 1 枚
难度 提高


上一题 下一题