CF2271A Robot Odd Moves
题目描述
给定一个整数网格上的点 $(a, b)$。
有一个机器人当前位于点 $(0, 0)$。机器人可以进行如下的两步操作任意多次(也可以不进行),其中 $(x, y)$ 表示机器人当前所在的位置:
1. 向上移动 $1$ 个单位或向下移动 $1$ 个单位:$(x, y) \rightarrow (x, y + 1)$ 或 $(x, y) \rightarrow (x, y - 1)$。
2. 然后向右移动 $1$ 个单位:$(x, y) \rightarrow (x + 1, y)$。
如果机器人某一时刻正处于某个点——无论是在操作前、两步操作之间、还是整个操作结束后——都认为机器人访问了该点。
请你求出,机器人访问到 $(a, b)$ 至少需要多少次操作,或者如果无法访问该点则输出 $-1$。
输入格式
本题包含多组测试用例。第一行为测试用例的数量 $t$($1 \le t \le 100$)。接下来的每个测试用例占一行,每行包含两个整数 $a$ 和 $b$($0 \le a, b \le 1000$),分别表示目标点的坐标。
输出格式
对于每组测试数据,输出一个整数,表示机器人访问到 $(a, b)$ 至少需要的操作次数,或者若无法访问该点则输出 $-1$。
说明/提示
在第一个样例中,机器人初始就在 $(0, 0)$,所以经过 $0$ 次操作就已访问到该点。
在第二个样例中,机器人在第一次操作时先向上移动到 $(0, 1)$,再向右移动到 $(1, 1)$,因此经过 $1$ 次操作后机器人访问过 $(0, 1)$。
在第三个样例中,可以证明机器人无法访问 $(0, 2)$。
在第四个样例中,机器人可以先执行一次向上和向右的操作,然后再执行一次向下和向右的操作。在第二次操作的中间阶段会到达 $(1, 0)$。第一次操作无法到达该点,因此答案是 $2$。
由 ChatGPT 5 翻译