题目描述
有⼀个三⾓形的魔⽅,初始时,三⾓形中按⾏依次填有 A-P 这 16 个字母。魔⽅每次可以选择某个下图箭头所⽰的⽅向进⾏⼀次 “旋转” 操作
共有 3 种合法的 “旋转” ⽅向,分别对应图中左上(红⾊箭头)、左下(蓝⾊箭头)、正右(绿⾊箭头)三个⽅向,分别记做 U 、 D 和 R 。每次 “旋转” 操作选择该⽅向上含有⼀、三、五或七个字母的⼀⾏(或列),分别记做1、3 、 5 、 7 。 将不同的⽅向和⾏(或列)组合得到⼗⼆种合法的 “旋转” 操作,例如U1、D7、R3。
“旋转” 操作会将该⾏/列的所有字母向对应箭头⽅向循环移动⼀格,第⼀个字母变成第⼆个字母、第⼆个字母变成第三个字母……最后⼀个字母变成第⼀个字母,以此类推,例如
如果我们将三⾓形魔⽅写成 “字母三⾓形” 的形式,那么初始状态就是:
A
BCD
EFGHI
JKLMNOP
如果对初始状态进⾏两次 U5 旋转,将会得到:
A
GCD
EMNHI
JKLBFOP
现在,你得到了⼀个魔⽅旋转机器⼈,它可以输⼊⼀个操作序列,然后将这个操作序列重复a的b次⽅,即a*a*a共b 个a相乘次。但让机器⼈旋转魔⽅实在太耗时了。你能预测出从初始状态开始,执⾏完机器⼈的动作后魔⽅的状态吗?
输入格式
第⼀⾏输⼊⼀个字符串,代表了⼀个操作序列。
第⼆⾏输⼊两个整数a,b ,代表机器⼈会将操作序列重复 a的b次方。
输出格式
输出 16 个字符,为操作序列重复后的魔⽅的状态,按⾏依次输出所有字母,例如初始状态输出 “ABCDEFGHIJKLMNOP”。
样例数据1
input
U3R5D7
5 2
output
EJLDHACBFKGIMNOP
样例数据2
input
U3U5U7
105 3
output
ABCDEFGHIJKLMNOP
样例数据3
input
R3R5R7U3U5U7D3D5D7D7
2 128
output
KBPDECGHIJFLMNOA
数据规模
对于 50% 的数据,b=1 。 对于 100% 的数据 1<=a,b<=1000 。操作序列中 “旋转” 操作的数量不超过100 。