#P9664. Latin Square
Latin Square
题目描述
本题来自 Codeforces Round #691 Latin Square。
你现在有一个 的矩阵 , 的行列编号均从 开始,到 结束,其中 表示 第 行到 行的值。特别地, 的每一列和每一行都是一个长度为 的排列。
现有如下对 的操作:
R
:将所有列向右循环移动 个单位,即 的值变为 ;L
:将所有列向左循环移动 个单位,即 的值变为 ;D
:将所有列向下循环移动 个单位,即 的值变为 ;U
:将所有列向下循环移动 个单位,即 的值变为 ;I
:将每一行排列对应的置换求逆;C
:将每一列排列对应的置换求逆。
对于长度为 的排列 而言置换求逆指得到另一个排列 满足 。
现在长度为 操作的操作序列 ,每个操作都是上述操作中的一个,求 次操作后,最终的矩阵 。
输入格式
第一行两个整数 ,表示方阵 的大小和操作次数。
接下来 行,第 行有 个数,第 个数表示 的值。
最后一行为一个长度为 的字符串 ,第 个字符为 R
,L
,D
,U
,I
,C
其中的一个,表示第 次操作。
输出格式
输出 行,第 行有 个整数,第 个整数表示 次操作后,最终的矩阵 的值。
样例
3 2
1 2 3
2 3 1
3 1 2
DR
2 3 1
3 1 2
1 2 3
3 1
1 2 3
2 3 1
3 1 2
I
1 2 3
3 1 2
2 3 1
见附加文件 mat3.in
见附加文件 mat3.out
数据范围
对于所有数据,,, 是一个长度为 的排列。
详细测试点及附加限制如下表所示:
测试点编号 | 限制 |
---|---|