CF1759C.Thermostat

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

Thermostat

题目描述

Vlad 回到家后发现有人把老式恒温器的温度设置成了 aa

恒温器只能设置在 llrr(包含端点)之间的温度,每次调节温度的变化不能小于 xx。具体来说,每次操作可以将恒温器从温度 aa 调整到温度 bb,前提是 abx|a - b| \ge xlbrl \le b \le r

现在给定 llrrxxaabb,请你求出将温度从 aa 调整到 bb 所需的最少操作次数。如果无法实现,则输出 -1。

输入格式

输入的第一行为一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来每个测试用例包含两行:

第一行为三个整数 llrrxx109lr109-10^9 \le l \le r \le 10^91x1091 \le x \le 10^9),表示温度的范围和每次最小的温度变化。

第二行为两个整数 aabbla,brl \le a, b \le r),表示初始温度和目标温度。

输出格式

输出 tt 行,每行一个整数,表示对应测试用例的答案。如果无法达到目标温度 bb,输出 -1,否则输出最少操作次数。

说明/提示

在第一个样例中,恒温器已经设置正确,无需操作。

在第二个样例中,可以按如下方式达到目标温度:41054 \rightarrow 10 \rightarrow 5

在第三个样例中,可以按如下方式达到目标温度:38273 \rightarrow 8 \rightarrow 2 \rightarrow 7

在第四个测试用例中,无法进行任何操作。

由 ChatGPT 4.1 翻译

样例

10
3 5 6
3 3
0 15 5
4 5
0 10 5
3 7
3 5 6
3 4
-10 10 11
-5 6
-3 3 4
1 0
-5 10 8
9 2
1 5 1
2 5
-1 4 3
0 2
-6 3 6
-1 -4
0
2
3
-1
1
-1
3
1
3
-1

在线编程 IDE

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