#ABC481D. 自动驾驶
自动驾驶
自动驾驶
题目描述
有 颗行星和 条航线。行星编号为 到 ,航线编号为 到 。
第 条航线从行星 单向通往行星 。
一艘飞船可以执行下面两种操作:
- 不消耗燃料,移动到「当前行星的所有航线终点中编号最小的那颗行星」;
- 任选一条从当前行星出发的航线,移动到它的终点,消耗 单位燃料。
请求出飞船从行星 出发、到达行星 最少需要消耗多少单位燃料。如果无法到达行星 , 输出 。
输入格式
第一行四个整数 ,用空格隔开。
接下来 行,第 行两个整数 ,用空格隔开,表示第 条航线从行星 通往行星 。
输出格式
输出一个整数,表示从行星 到达行星 最少需要消耗的燃料量;若无法到达,输出 。
7 10 2 1
2 5
2 4
4 2
4 3
3 1
3 5
3 6
5 6
6 1
6 7
1
样例 1 解释
按下面的顺序移动,可以从行星 到行星 ,共消耗 单位燃料:
- 从行星 不消耗燃料,移动到行星 ;
- 从行星 移动到行星 ,消耗 单位燃料;
- 从行星 不消耗燃料,移动到行星 。
7 10 2 7
2 5
2 4
4 2
4 3
3 1
3 5
3 6
5 6
6 1
6 7
2
样例 2 解释
按下面的顺序移动,可以从行星 到行星 ,共消耗 单位燃料:
- 从行星 不消耗燃料,移动到行星 ;
- 从行星 不消耗燃料,移动到行星 ;
- 从行星 移动到行星 ,消耗 单位燃料;
- 从行星 不消耗燃料,移动到行星 ;
- 从行星 移动到行星 ,消耗 单位燃料。
2 1 1 2
2 1
-1
样例 3 解释
从行星 出发无法到达行星 ,所以输出 。
数据范围
对于所有测试数据,保证:
- ;
- ;
- ,且 ;
- ,且 ();
- 不同的航线可以连接同一对行星,即 允许重复出现;
- 所有输入值均为整数。
子任务
本题共 20 个测试点,按测试点计分:
| 测试点 | 分值 | 每个测试点 | 特殊限制 |
|---|---|---|---|
| 无特殊限制 |
每个测试点单独评分,全部测试点的得分之和即为本题得分。
相关
在下列比赛中: