任务描述
给定一个矩阵,请编程将其按照以下约定的操作方式变换后输出。
相关知识
参考之前的关卡。
编程要求
根据提示,在右侧编辑器的Begin-End区域内补充代码。
测试说明
输入:第一行三个正整数 n,m 和 q 分别表示矩阵 A
的行数、列数和操作数量;接下来 n 行,每行 m 个数,第 i 行第 j 个数为Ai,j(0≤Ai,j≤105)
;接下来 q 行,每行输入形式为以下三种之一(输入时以数字 1,2,3 分别代表每种操作): (1)x l r
表示把第 x 行的第 l 到第 r 个数翻转; (2)y l r
表示把第 y 列的第 l 到第 r 个数翻转; (3)x1,y1,x2,y2,x3,y3,将矩阵 A
中 (x1,y1)
,(x2,y2)
,(x3,y3)
这三个位置上的数按从小到大排序和变换位置。设这三个位置上的数从小到大排序后为a,b,c,a≤b≤c
,这个操作完成后,应有 Ax1,y1=a
,Ax2,y2=b
,Ax3,y3=c
。
其中1≤n,m,q≤103
,n×m≥3
,1≤x,xi≤n
,1≤y,yi≤m
。保证操作 1 有1≤l≤r≤m
, 保证操作 2 有 1≤l≤r≤n
,保证操作 3 的三个位置互不相同。
输出:输出 n 行,每行 m 个数表示最终 q 次操作结束后的矩阵。
例如测试集 1 的输入是: 2 2 3
1 2
3 4
1 1 1 2
2 2 1 2
3 1 1 1 2 2 1
程序运行结果为: 2 3
4 1
对一个 2 行 2 列的矩阵 [1324]
进行 3 步操作。第一步操作将第 1 行的第 1-2 个数翻转,则输入样例变为:[2314]
;第二步操作将第2列第1~2个数翻转,则输入样例变为:[2341]
;第三步操作三个位置上的数为 2,4,3。从小到大排序后为 2,3,4。所以操作之后A1,1=2
, A1,2=3
, A2,1=4
, l, 输出[2431]
。
开始你的任务吧,祝你成功!