#P16800. [NWRRC 2025]Keys and Grates

[NWRRC 2025]Keys and Grates

K. 钥匙与栅栏()

题目描述

Katniss 身处一条很长的笔直隧道中,想要逃出去。她可以沿隧道向左或向右移动。

隧道中有且仅有一个出口舱门。只要 Katniss 到达舱门所在位置,就能离开隧道。

然而,隧道中有 nn 道栅栏。每道栅栏都横跨整条隧道,并且处于锁定状态。在打开栅栏之前,Katniss 无法穿过它。

隧道中还放置着 nn 把钥匙,每把钥匙恰好能打开一道对应的栅栏,每道栅栏也恰好对应一把钥匙。

Katniss 到达一把钥匙的位置时可以捡起它,并且能够同时携带任意多把钥匙。打开某道栅栏后,她可以无限次自由穿过该栅栏。

Katniss 知道以下所有信息:

  • 自己的初始位置;
  • 出口舱门的位置;
  • 所有钥匙的位置;
  • 所有栅栏的位置;
  • 每把钥匙能够打开哪一道栅栏。

请计算 Katniss 为逃离隧道至少需要移动多远。如果无论如何都无法到达出口,则输出 -1

输入格式

本题包含多组测试数据。

第一行包含一个整数 tt,表示测试数据组数。

每组测试数据的第一行包含三个整数 n,s,hn,s,h,分别表示栅栏数量、Katniss 的初始坐标和出口舱门的坐标。

接下来 nn 行,第 ii 行包含两个整数 ki,gik_i,g_i

  • kik_i 表示第 ii 把钥匙的坐标;
  • gig_i 表示这把钥匙能够打开的栅栏坐标。

所有 2n+22n+2 个坐标

s,h,k1,g1,k2,g2,,kn,gns,h,k_1,g_1,k_2,g_2,\ldots,k_n,g_n

两两不同。

输出格式

对于每组测试数据,输出 Katniss 逃离隧道所需的最短路程。

如果无法逃离,输出 -1

数据范围

1t5×104,1\le t\le 5\times 10^4, 1n2×105,1\le n\le 2\times 10^5, 106s,h,ki,gi106.-10^6\le s,h,k_i,g_i\le 10^6.

所有测试数据中:

n2×105.\sum n\le 2\times 10^5.

样例

3
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
32
-1
7

样例说明

在第一组测试数据中,一条最短逃生路线如下:

$$5\rightarrow 3\rightarrow 7\rightarrow 9\rightarrow 1\rightarrow -1 \rightarrow 2\rightarrow 10\rightarrow 11\rightarrow 13.$$

沿途依次完成以下操作:

  • 在坐标 33 捡起钥匙 11
  • 在坐标 77 打开栅栏 11
  • 在坐标 99 捡起钥匙 44
  • 在坐标 11 打开栅栏 44
  • 在坐标 1-1 捡起钥匙 33
  • 在坐标 22 捡起钥匙 55
  • 在坐标 1010 打开栅栏 55
  • 在坐标 1111 打开栅栏 33
  • 最后到达坐标 1313 的出口。