#abc272d. [abc272_d]Root M Leaper
[abc272_d]Root M Leaper
问题描述
有一个 的网格,我们用 表示从上往下数第 行、从左往右数第 列的方格。
初始时,一个棋子放在 处。你可以重复以下操作任意次数:
- 设当前棋子所在的方格为 ,将棋子移动到距离 恰好为 的方格中。
这里,我们定义方格 与方格 之间的距离为 。
对于所有的方格 ,确定棋子是否可以到达 。如果可以到达,找出所需的最小操作次数。
约束条件
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
输出
输出 行。第 行应包含 个整数。如果棋子可以到达 ,则第 行的第 个整数应为所需的最小操作次数;否则应为 。
示例输入 1
3 1
示例输出 1
0 1 2
1 2 3
2 3 4
你可以将棋子移动到四个相邻的方格。
例如,我们可以通过以下两次操作将棋子移动到 :
- 棋子当前位于 。方格 与 之间的距离恰好为 ,因此将棋子移动到 。
- 棋子当前位于 。方格 与 之间的距离恰好为 ,因此将棋子移动到 。
示例输入 2
10 5
示例输出 2
0 3 2 3 2 3 4 5 4 5
3 4 1 2 3 4 3 4 5 6
2 1 4 3 2 3 4 5 4 5
3 2 3 2 3 4 3 4 5 6
2 3 2 3 4 3 4 5 4 5
3 4 3 4 3 4 5 4 5 6
4 3 4 3 4 5 4 5 6 5
5 4 5 4 5 4 5 6 5 6
4 5 4 5 4 5 6 5 6 7
5 6 5 6 5 6 5 6 7 6