1052. Matrix

Veggie 最近深深地迷恋上了 Matrix,现在他手上有一个 N \times N 的矩阵,矩阵中的元素都是数字,他希望可以从不同角度欣赏矩阵之美。但是 Veggie 道行尚浅,只能请求好友 SLF 帮他完成对矩阵的变换,矩阵的变换法则如下:

法则 1:将矩阵顺时针旋转 90 度,例如:

1 2 3 7 4 1 4 5 6 → 8 5 2 7 8 9 9 6 3

法则 2:将矩阵逆时针旋转 90 度,例如:

1 2 3 3 6 9 4 5 6 → 2 5 8 7 8 9 1 4 7

法则 3:矩阵的中央元素不变,将其他元素与 "以中央元素为中心对称的元素" 互换,例如:

1 2 3 9 8 7 4 5 6 → 6 5 4 7 8 9 3 2 1

不料 SLF 二话不说把这个差事安排给了你,现在请你编程帮 Veggie 完成矩阵的变换。

输入

第一行输入正整数 N \ (1 \leq N \leq 25),和 M \ (0 \leq M \leq 20) 中间以空格隔开,其中 N 如题目且保证是一个奇数M 表示矩阵变换的次数。

接下来 N 行,每行输入 N 个在 int 类型范围内的整数,中间以空格隔开,表示矩阵的各元素。

最后 M 行,每行输入一个整数 t \ (1 \leq t \leq 3),表示要进行变换的法则编号。

输出

输出每次变换后的矩阵,每次输出完需要多打印一个空行(详情可以参照输出样例 1)。

注意:每输入一个变换法则编号,视为一次变换。

样例

标准输入 复制文本
3 2
1 2 3
4 5 6
7 8 9
2
3
标准输出 复制文本
3 6 9
2 5 8
1 4 7

7 4 1
8 5 2
9 6 3

来源

2019 软件学院 AK 杯程序设计竞赛

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 946
通过 339