#XMOJ11878. 安全第一

安全第一

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:safe.in 输出文件:safe.out

背景故事

依靠可靠伙伴的通信,你成功拆除了炸弹!

接下来的工作是搬运拆下来的零部件。

你躲过危险,安心着手准备,却发现了一个严重的问题!

编号相邻的零部件如果靠得太近,零部件就会重新启动!

原本打算把零部件放回炸弹外壳内运输,如果摆放位置设计不好,就会再次面临爆炸的危机……


题目描述

给定正偶数 $N$,考虑一个 $N\times N$ 的网格。

在网格的每个格子中填入一个 $1\sim N^2$ 的整数,所有格子数字互不相同。

记从上往下第 $i$ 行、从左往右第 $j$ 列的格子为 $(i,j)$;写有整数 $k\ (1 \le k \le N^2)$ 的格子坐标为 $(X_k,Y_k)$。

你的目标:最大化相邻数值所在格子距离平方的最小值,也就是最大化:

$$ \min_{2 \le k \le N^2}\left\{(X_k-X_{k-1})^2+(Y_k-Y_{k-1})^2\right\} $$

请输出任意一组可以达到该最优值的填数方案。


输入格式

一行一个整数 $N$。

输出格式

输出 $N$ 行。

第 $i$ 行包含 $N$ 个整数,用空格隔开,表示格子 $(i,j)$ 上填写的数字 $A_{i,j}$。

样例

样例 1

2

1 2
3 4

样例说明:

该输出下:

$(X_2-X_1)^2+(Y_2-Y_1)^2 = 1+0=1$

$(X_3-X_2)^2+(Y_3-Y_2)^2 = 1+1=2$

$(X_4-X_3)^2+(Y_4-Y_3)^2 = 1+0=1$

对于 $N=2$,$\displaystyle\min_{2 \le k \le N^2}\{(X_k-X_{k-1})^2+(Y_k-Y_{k-1})^2\}$ 的值必然等于 $1$,因此任意填法都算正确答案。

数据范围

对于 12% 的数据,$N \le 10$。

对于 100% 的数据,$2 \le N \le 300$,$N$ 为正偶数。