atcoder#ABC272D. [ABC272D] Root M Leaper
[ABC272D] Root M Leaper
题目描述
のマス目があります。上から 行目、左から 列目のマスを と表します。
始め、 に駒が 個置かれています。あなたは以下の操作を何度でも行うことができます。
- 今駒が置かれているマスと距離がちょうど であるマスに駒を移動させる。
ここで、マス とマス の距離は とします。
全てのマス に対して、以下の問題を解いてください。
- 駒を から に移動させることができるかを判定し、できる場合は操作回数の最小値を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
行出力せよ。 行目には 個の整数を出力せよ。 行目の 個目の出力は、マス に駒を移動させることができるのであれば操作回数の最小値を、そうでないのであれば を出力せよ。
题目大意
题目描述
有一个大小为 的方格图(网格)。在本题中,我们所说的方格 指网格从上往下数第 行,从左往右数第 列。
最开始,有一个棋子位于方格 。现在你可以进行下面这个操作若干次:
- 当前棋子位于 ,那么移动它到一个距离它刚好 的点(不超出网格)。
本题中的“距离”,指欧几里得距离。即方格 与 的距离是 。
现在对于整个网格,请你确定棋子能否到达方格 。如果可以,输出到达它的最少操作次数;如果不行,输出 -1
。
输入格式
输入两个正整数 , 。
输出格式
输出共 行。 第 行包含 个整数,中间以一个空格隔开。如果棋子可以到达方格 ,第 行第 列应输出到达它的最少操作次数;如果不行,输出 -1
。
说明/提示
数据范围
- 输入全为整数
样例说明
对于样例1,你可以把棋子通过一定次数的操作挪到这个方格图的任意位置。
比如说,我们可以通过如下操作把棋子移到 :
- 开始棋子在 。 到 的距离刚好是 ,所以我们把它移到 。
- 现在棋子在 了。 到 的距离也刚好是 ,所以我们就把它移到了 。
3 1
0 1 2
1 2 3
2 3 4
10 5
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
提示
制約
- 入力は全て整数
Sample Explanation 1
駒は上下左右の 個のマスに移動することができます。 例えば に移動するには、以下のように 回の操作を行えばよいです。 - 今駒は に置かれている。 と の距離はちょうど であるため、駒を に移動させる。 - 今駒は に置かれている。 と の距離はちょうど であるため、駒を に移動させる。