#P11357. [eJOI2023] Square Grid Puzzle
[eJOI2023] Square Grid Puzzle
题目描述
有一个 的矩阵,元素从 编号。我们希望通过小于 次操作将第 行第 列的元素变为 。
你可以对矩阵进行两种操作:
-
D a[0] a[1] ... a[N-1]
:对矩阵第一行重排,再将每一列向上循环位移一位,你需要保证给出的 是矩阵第一行的一个重排。 -
R b[0] b[1] ... b[N-1]
:对矩阵第一列重排,再将每一行向左循环位移一位,你需要保证给出的 是矩阵第一列的一个重排。
例如,如果当前矩阵如下:
R/C | 0 | 1 | 2 |
---|---|---|---|
0 | 2 | 4 | 6 |
1 | 8 | 1 | 5 |
2 | 7 | 3 | 0 |
如果对原矩阵执行 D 2 6 4
,矩阵会变成下图:
R/C | 0 | 1 | 2 |
---|---|---|---|
0 | 8 | 1 | 5 |
1 | 7 | 3 | 0 |
2 | 6 | 2 | 4 |
如果对原矩阵执行 R 2 8 7
,矩阵会变成下图:
R/C | 0 | 1 | 2 |
---|---|---|---|
0 | 4 | 6 | 2 |
1 | 5 | 8 | |
2 | 3 | 0 | 7 |
即使你使用了 次操作,或者有一些数没有复原,你仍然可以得到一些部分分,见 【评分方式】 一栏。
输入格式
第一行输入一个整数 。
接下来 行每行输入 个整数 代表初始矩阵。
输出格式
第一行输出一个整数 ,代表操作次数。
接下来 行每行输出一次操作,格式见上。
3
1 4 2
3 7 5
6 8 0
4
R 3 6 1
D 2 3 4
D 5 6 7
R 2 5 8
2
2 1
0 3
0
提示
【评分方式】
令 ,, 为操作后符合要求的位置个数。
如果你的程序没有正常结束或格式错误或 ,该测试点不得分。
否则,若 ,你获得该测试点 的分数。
否则,若 ,你获得该测试点 的分数。
否则,你获得满分。
【样例解释】
第一个样例用了 次操作复原了矩阵,可以获得 的分数。
第二个样例用了 次操作复原了 的位置,可以获得该测试点 的分数。
【数据范围】
对于 的数据,保证 ,且 在测试点中均匀分布。