CF2147A.Shortest Increasing Path

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Shortest Increasing Path

题目描述

你现在位于一个矩形网格的 $$(0, 0)$$,希望到达 $$(x, y)$$。

为此,你可以进行一系列的移动操作。

每一步可以在 xx 轴或 yy 轴正方向上前进一个正整数长度。

11 步必须沿 xx 轴移动,第 22 步沿 yy 轴移动,第 33 步再沿 xx 轴移动,依此类推。形式化地讲,如果我们从 11 开始编号每一步,则奇数步移动在 xx 轴,偶数步移动在 yy 轴。

此外,每一步的长度必须严格大于前一步的长度。

请输出到达 $$(x, y)$$ 所需的最少步数,如果不可能到达,输出 1-1

输入格式

每组测试数据包含多个测试用例。第一行为测试用例个数 tt1t1041 \le t \le 10^4)。
接下来的每组测试用例,每行为两个整数 xxyy1x,y1091 \le x, y \le 10^9)。

输出格式

对于每个测试用例,输出到达 $$(x, y)$$ 所需的最少步数,如果无法到达则输出 1-1

说明/提示

可视化链接

在第二个测试用例中,可以先沿 xx 轴移动 55 到达 $$(5, 0)$$,再沿 yy 轴移动 66 到达 $$(5, 6)$$。

在第三个测试用例中,可以先到 $$(1, 0)$$,再到 $$(1, 2)$$,最后到 $$(4, 2)$$。

在第四个测试用例中,无法到达 $$(1, 1)$$。因为第一步沿 xx 轴移动到 $$(1, 0)$$ 后,第二步在 yy 轴上必须至少移动 22,无法只到 y=1y=1

由 ChatGPT 5 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验