#abc273f. [abc273_f]Hammer 2
[abc273_f]Hammer 2
问题陈述
高桥位于数轴的原点。高桥想要到达坐标为 的目标点。
此外,数轴上有 个墙和 个锤子。
- 在坐标 处分别有类型为 的墙。
- 最初,高桥无法越过这些墙。
- 在坐标 处分别有类型为 的锤子。
- 当高桥到达带有锤子的坐标时,他会获得该锤子。
- 第 类锤子专门用于摧毁第 类墙。在获得第 类锤子后,他可以摧毁第 类墙并越过它。
确定他是否能够到达目标点。如果可以,找出他所需行进的最小距离。
约束条件
- 输入中的所有值均为整数。
- 个坐标 和 互不相同。
输入
输入以以下格式从标准输入给出:
输出
如果高桥可以到达目标点,则以整数形式打印出他所需行进的最小距离。
否则,打印 -1
。
示例输入 1
3 10
-2 8 -5
5 -10 3
示例输出 1
40
高桥可以通过以下方式行进 的距离到达目标点,这是可能的最小距离:
- 他从坐标 开始。
- 他移动到坐标 来获取第 类锤子。
- 他移动到坐标 来获取第 类锤子。
- 他移动到坐标 来摧毁第 类墙。
- 他移动到坐标 来摧毁第 类墙。
- 他移动到坐标 来获取第 类锤子。
- 他移动到坐标 来摧毁第 类墙。
- 他移动到目标点坐标 。
示例输入 2
5 -1
10 -20 30 -40 50
-10 20 -30 40 -50
示例输出 2
1
为了到达目标点,可能不要求他获得锤子或摧毁墙。
示例输入 3
1 100
30
60
示例输出 3
-1
高桥无法获得第 类锤子,也无法到达目标点。
示例输入 4
4 865942261
703164879 -531670946 -874856231 -700164975
-941120316 599462305 -649785130 665402307
示例输出 4
4078987507