空间跳跃
类型:程序题

题目描述

小杨在二维空间中有 $n$ 个水平挡板,并且挡板之间彼此不重叠,其中第 $i$ 个挡板处于水平高度 $h_i$,左右端点分别位于 $l_i$ 与 $r_i$。

小杨可以在挡板上左右移动,当小杨移动到右端点时,如果再向右移动会竖直掉落,从而落到下方第一个挡板上,移动到左端点时同理。小杨在挡板上每移动 1 个单位长度会耗费 1 个单位时间,掉落时每掉落 1 个单位高度也会耗费 1 个单位时间。

小杨想知道,从第 $s$ 个挡板上的左端点出发到第 $t$ 个挡板需要耗费的最少时间是多少?

注意:可能无法从第 $s$ 个挡板到达第 $t$ 个挡板。

输入格式

第一行包含一个正整数 $n$,代表挡板数量。

第二行包含两个正整数 $s, t$,含义如题面所示。

之后 $n$ 行,每行包含三个正整数 $l_i, r_i, h_i$,代表第 $i$ 个挡板的左右端点位置与高度。

输出格式

输出一个整数代表需要耗费的最少时间,如果无法到达则输出 $-1$。

输入样例 1

3
3 1
5 6 3
3 5 6
1 4 100000

输出样例 1

100001

样例解释 1

耗费时间最少的移动方案为,从第 3 个挡板左端点移动到右端点,耗费 3 个单位时间,然后向右移动掉落到第 2 个挡板上,耗费 $100000 - 6 = 99994$ 个单位时间,之后再向右移动 1 个单位长度,耗费 1 个单位时间,最后向右移动掉落到第 1 个挡板上,耗费 3 个单位时间。共耗费 $3 + 99994 + 1 + 3 = 100001$ 个单位时间。

数据范围

子任务编号 数据点占比 $n$ 特殊条件
1 20% $\le 1000$ $l_i = 1$
2 40% $\le 1000$ $l_i = i$,$r_i = i + 1$
3 40% $\le 1000$

对于全部数据,保证有 $1 \le n \le 1000$,$1 \le l_i \le r_i \le 10^5$,$1 \le h_i \le 10^5$。

代码编辑器 加载中...
测试用例输入
{{resultStatus.text}}
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?