4930: OI联盟[202403]T4 马踏棋盘
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
在象棋中,马的移动规则是通过走“日”字型的路径。具体来说,从初始点(0,0)(0,0)出发,马可以跳到八个不同的方向之一,比如(1,,2)、(2,1)(1,,2)、(2,1)等总共八个点。传统的规则下,马的跳跃距离为55,但现在小明对这一规则进行了改进。
小明的改进是每次跳跃的距离必须是一个整数,且不再限制为55,例如,从(0,0)(0,0)点可以跳向(3,4)(3,4)、距离为 55 个单位。请注意,马在跳跃时不能直线前进,必须采用斜线路径,当然马仍然只能从整数点,跳到整数点。
现在给定,棋盘的大小,具体地,棋盘范围是从 (0,0)(0,0) 点到 (�−1,�−1)(n−1,n−1) 的点。你的任务是给定棋盘的大小和马的初始坐标,计算出马跳到每个点的最小步数。要注意的是,在这个过程中,马始终不能跳到棋盘的外面。
输入
输入第一行有三个整数�,�,�n,x,y
�n 代表棋盘大小为 �∗�n∗n 的棋盘 �,�x,y 分别代表马的初始坐标
输出
一个 �×�n×n 的矩阵,代表马到达某个点最少要走几步(不能到达则输出 −1−1)
样例输入 复制
5 0 0
样例输出 复制
0 -1 -1 -1 -1
-1 -1 -1 -1 -1
-1 -1 -1 -1 -1
-1 -1 -1 -1 1
-1 -1 -1 1 -1
提示
提示
对于20%的测试点,保证 0≤�,�,�≤100≤n,x,y≤10
对于50%的测试点,保证 0≤�,�,�≤1000≤n,x,y≤100
对于100%的测试点,保证 0≤�,�,�≤3000≤n,x,y≤300