#CF2147A. 最短递增路径
最短递增路径
A. 最短递增路径
每次测试时间限制: 秒
每次测试内存限制: 兆字节
你现在位于点 ,在一个矩形网格中,想要走到点 。
为此,你可以执行一系列步骤。
- 每一步都是向任一方向沿 轴或 轴移动一个正整数长度。
- 第一步必须沿 轴,第二步沿 轴,第三步沿 轴,依此类推。
形式化地说,如果我们按顺序给步骤编号从 开始,那么奇数步必须沿 轴移动,偶数步必须沿 轴移动。 - 此外,每一步的长度必须严格大于前一步的长度。
输出到达 所需的最小步数,如果不可能到达则输出 。
输入
每个测试包含多个测试用例。
第一行包含一个整数 (),表示测试用例的数量。
接下来 行,每行包含两个整数 和 ()。
输出
对于每个测试用例,输出到达 所需的最小步数,或者 如果不可能。
示例
输入:
10
1 2
5 6
4 2
1 1
2 1
3 3
5 1
5 4
752 18572
95152 2322
输出:
2
2
3
-1
-1
-1
-1
-1
2
3
注释
- 在第二个测试用例中,你可以先沿 轴移动 到 ,再沿 轴移动 到 。
- 在第三个测试用例中,你可以先沿 轴移动 到 ,然后沿 轴移动 到 ,最后沿 轴移动 到 。
- 在第四个测试用例中,要到 是不可能的,因为沿 轴移动到 后,下一步沿 轴至少要移动 (因为必须严格大于前一步 ),这样 坐标会变成 或更大,无法停在 。