#2363. 二维数组转置

二维数组转置

题目描述

题目描述

小青遇到了这样一个问题:

输入一个nnmm列的数组,输出他的转置,具体来说 输出的第ii行第jj个数字,应是输入的第jj行第ii个数字。 $1 \\\\le n \\\\le 20000,1 \\\\le m \\\\le 20000,1 \\\\le n * m \\\\le 20000,1 \\\\le a[i][j] \\\\le 1000$ 特别注意,你并不能声明一个两维的大小都是2000020000二维数组。(数组不能太大,二维数组的大小是两维的乘积) 二维数组本质上和一维数组等价,所以你只需要一个大小为2000020000的一维数组。

输入格式

第一行两个整数nn, mm表示数组的行数和列数;接下来nn行,每行mm个整数表示数组内容。

输出格式

第一行先输出mm, nn。 接下来输出转置的结果,共mmnn列。 其中第ii行第jj个数字,应是输入的第jj行第ii个数字。

样例

样例 1

输入 # 1


输出 # 1