hzCPPOJ

1529【多维数组】数组转置

时间限制:  1 s      内存限制:   128 MB
提交:145     正确:64     分值:91

题目描述

由数组a生成数组b的方法描述如下:

1) 将一维整数数组a中的n个元素(n<=300)依次分割出若干个数据块,每个数据块有m×m个元素,m 最大值为8,最小值为2。分割时,按尽可能大的数据块进行分割;

2) 对每个分割出的数据块用“方阵转换法”进行转换,每次转换后得到的数据块依次存储在数据b中;

3) 数组 a 分割后的剩余元素(个数小于4),直接依序存储到数组b中。

例如n=140时,可依次分割出3个数据块,元素的个数分别为648×8)、648×8)、93×3),剩余元素为3个。


“方阵转换法”过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,从该数字方阵中按列序得到转换后元素的次序。以3×3数据块为例,转换过程如下图所示:


输入

第一行是正整数n,表示数据个数。

第二行是n个用空格隔开的正整数(n<=300)。

输出

经过方阵转换后数列,两数间用空格隔开。

样例

样例输入:
12 12 67 34 42 19 77 54 22 83 13 89 52
样例输出:
12 42 54 67 19 22 34 77 83 13 89 52

提示

可以设置2个变量记录当前未分割数据的第1个元素下标和当前未分割数据的个数

提交人

AmberXie

来源/分类