图像变换
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
一张黑白照片可以看成一个 行 列的整数矩阵,每个整数是一个像素的灰度值。
小 G 在写一个简单的修图软件,它支持下面四种操作,每种操作用一个大写字母表示:
| 字母 | 操作 | 说明 |
|---|---|---|
R |
顺时针旋转 | 行 列的图像会变成 行 列 |
L |
逆时针旋转 | |
H |
左右翻转 | 每一行的顺序前后颠倒,行数列数不变 |
V |
上下翻转 | 各行的顺序前后颠倒,行数列数不变 |
给定原始图像和一串操作,请按从左到右的顺序依次执行这些操作,输出最终的图像。
输入格式
第一行两个整数 ,表示图像的行数和列数。
接下来 行,每行 个整数,表示每个像素的灰度值。
最后一行一个由 R、L、H、V 组成的字符串 ,表示依次执行的操作。
输出格式
第一行两个整数,表示最终图像的行数和列数,中间用一个空格隔开。
接下来按行输出最终的图像,每行的相邻两个整数之间用一个空格隔开。
样例 #1
样例输入 #1
2 3
1 2 3
4 5 6
RH
样例输出 #1
3 2
1 4
2 5
3 6
样例解释
原图是 行 列。顺时针旋转 后变成 行 列:
4 1
5 2
6 3
再左右翻转,每一行前后颠倒,得到样例输出。
样例 #2
样例输入 #2
3 4
1 2 3 4
5 6 7 8
9 10 11 12
LH
样例输出 #2
4 3
12 8 4
11 7 3
10 6 2
9 5 1
样例解释
逆时针旋转 后,原来的最后一列 变成了第一行,图像变成 行 列;再左右翻转得到样例输出。
提示
数据范围
- 对于 的数据:,且 中只有
H和V; - 对于 的数据:;
- 对于 的数据:,,每个灰度值都是 的整数。
提示
- 原地修改很容易把还没用到的数据覆盖掉。可以先把变换结果写到另一个二维数组里,再整体抄回去。
- 每种操作写成一个函数,主函数只负责读入、按字母调用函数和输出,程序会清楚很多。