CF1759C Thermostat
题目描述
Vlad 回到家后发现有人把老式恒温器的温度设置成了 $a$。
恒温器只能设置在 $l$ 到 $r$(包含端点)之间的温度,每次调节温度的变化不能小于 $x$。具体来说,每次操作可以将恒温器从温度 $a$ 调整到温度 $b$,前提是 $|a - b| \ge x$ 且 $l \le b \le r$。
现在给定 $l$、$r$、$x$、$a$ 和 $b$,请你求出将温度从 $a$ 调整到 $b$ 所需的最少操作次数。如果无法实现,则输出 -1。
输入格式
输入的第一行为一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
接下来每个测试用例包含两行:
第一行为三个整数 $l$、$r$ 和 $x$($-10^9 \le l \le r \le 10^9$,$1 \le x \le 10^9$),表示温度的范围和每次最小的温度变化。
第二行为两个整数 $a$ 和 $b$($l \le a, b \le r$),表示初始温度和目标温度。
输出格式
输出 $t$ 行,每行一个整数,表示对应测试用例的答案。如果无法达到目标温度 $b$,输出 -1,否则输出最少操作次数。
说明/提示
在第一个样例中,恒温器已经设置正确,无需操作。
在第二个样例中,可以按如下方式达到目标温度:$4 \rightarrow 10 \rightarrow 5$。
在第三个样例中,可以按如下方式达到目标温度:$3 \rightarrow 8 \rightarrow 2 \rightarrow 7$。
在第四个测试用例中,无法进行任何操作。
由 ChatGPT 4.1 翻译