Problem4822--马的遍历

4822: 马的遍历

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

Description

有一个 $n * m\ (1 < n,\ m \leq 400)$ 的棋盘,在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。
马在中国象棋以日字形规则移动。

Input

一行四个数据,棋盘的大小和马的坐标。

Output

一个 $n * m$ 的矩阵,代表马到达某个点最少要走几步(左对齐,宽 $5$ 格,不能到达则输出 $-1$)。

Sample 1 Input

3 3 1 1

Sample 1 Output

0    3    2    
3    -1   1    
2    1    4

HINT

使用 cout 的同学,左对齐和位宽使用如下:
cout<<left<<setw(5)<<
使用 printf 的同学,左对齐和位宽使用如下:
printf("%-5lld", 

Source/Category

基础算法 4.100.BFS