时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Neo 被困在了 Matrix(一个

的矩阵)中央,他知道如果想从矩阵中出来的话,必须沿着一定的规律走出矩阵,而这个规律就是旋螺线!
Neo 的初始方向为 '→',当他发现右手边的方格没有走过时,他会选择顺时针旋转 90°,然后走向那个没有走过的方格。
* 对于边长为奇数的矩阵,其矩阵中心为
)
。
* 对于边长为偶数的矩阵,其矩阵中心为
)
。
现在需要你输出每个方格被遍历到的顺序,从 0 开始计数。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
一行中给定一个整数
,表示矩阵的边长。
数据保证
的总和不会超过 1000.
输出描述:
输出
行,每行包含
个数字,其中第
行第
个数字表示该方格被遍历到的顺序。
示例1
输出
复制
0
0 1
3 2
6 7 8
5 0 1
4 3 2
6 7 8 9
5 0 1 10
4 3 2 11
15 14 13 12