Problem6073--感染者

6073: 感染者

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

在一个 $n \times n$ 的矩阵中,每个位置均有一个人。已知中间点(比如 $n = 5$,则中间点为 $(3,\ 3)$)的那个人感染了病毒。对于每个感染病毒的人,他的上下左右四个人均会在下一分钟感染病毒。当然,已经感染病毒的人是不会二次感染。
已知在矩阵中间点的人在第 $1$ 分钟的时候感染了病毒,问 $n \times n$ 的矩阵中,每个人最早感染病毒的时间。

Input

第一行一个整数 $n\ (5 \leq n \leq 1000)$。而且 $n$ 为奇数。

Output

输出共 $n$ 行,每行 $n$ 个以空格隔开的整数,代表这个位置的人最早感染病毒的时间。

Sample 1 Input

5

Sample 1 Output

5 4 3 4 5
4 3 2 3 4
3 2 1 2 3
4 3 2 3 4
5 4 3 4 5

假设矩阵中还没有被感染的人用 00 表示,则第一分钟的矩阵状态为:

0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0

第二分钟的矩阵状态为:

0 0 0 0 0
0 0 2 0 0
0 2 1 2 0
0 0 2 0 0
0 0 0 0 0

第三分钟的矩阵状态为:

0 0 3 0 0
0 3 2 3 0
3 2 1 2 3
0 3 2 3 0
0 0 3 0 0

第四分钟的矩阵状态为:

0 4 3 4 0
4 3 2 3 4
3 2 1 2 3
4 3 2 3 4
0 4 3 4 0

第五分钟的矩阵状态为:

5 4 3 4 5
4 3 2 3 4
3 2 1 2 3
4 3 2 3 4
5 4 3 4 5

Source/Category