#P16898. [Ontak2026]门与钥匙
[Ontak2026]门与钥匙
题目描述
Bajtazar 身处一条非常长的一维隧道中,希望从唯一的出口回家。
隧道中有 扇关闭的门,同时也有 把钥匙。每把钥匙恰好能打开一扇门,并且每扇门都恰好有一把对应的钥匙。Bajtazar 在行走过程中可以拾取钥匙,并且可以携带任意多把钥匙。
Bajtazar 知道:
- 自己的初始位置 ;
- 出口位置 ;
- 每把钥匙的位置;
- 每扇门的位置;
- 每把钥匙对应哪扇门。
当 Bajtazar 第一次要穿过一扇关闭的门时,必须已经拿到对应的钥匙;拿到钥匙后即可打开该门并通过。
求 Bajtazar 到达出口所需行走的最短总距离。如果无论如何都无法离开隧道,输出 。
输入格式
第一行包含整数 ,表示测试数据组数:
。
对于每组数据:
第一行包含三个整数 :
- ;
- 。
接下来 行,第 行包含两个整数 :
- :第 把钥匙的位置;
- :这把钥匙所能打开的门的位置;
- 。
每组数据中的 个坐标 两两不同。
所有测试数据中 的总和不超过 。
输出格式
对于每组数据输出一行:
- 若可以到达出口,输出所需的最短行走距离;
- 否则输出
-1。
样例
4
2 1 10
2 0
-1 5
5 5 13
3 7
8 14
-1 11
9 1
2 10
4 40 0
20 80
50 30
70 60
90 10
1 -1 6
11 8
15
32
-1
7
样例说明
第一组数据中,Bajtazar:
- 从 走到位置 ,拿到能打开位置 处门的钥匙;
- 穿过位置 的门后走到 ,拿到能打开位置 处门的钥匙;
- 再穿过位置 的门走到出口 。
第三组数据中,要穿过位置 的门必须先取得位置 的钥匙,但前往位置 的途中又会被位置 的门阻挡,而打开它所需的钥匙位于当前不可到达的位置 ,因此无法逃离。
子任务
| 子任务 | 限制 | 分值 |
|---|---|---|
| 1 | 18 | |
| 2 | 任意两扇相邻的门之间至多有一把钥匙 | 23 |
| 3 | 答案恒为 | 3 |
| 4 | 答案恒不为 | 17 |
| 5 | 13 | |
| 6 | 无额外限制 | 26 |
相关
在下列比赛中: