#1475. 鬼屋游戏

鬼屋游戏

问题描述

有从 11nn 编号的 nn 家鬼屋,每家鬼屋都有一定的惊吓程度 wiw_i。惊吓程度值越高,体验越惊悚;值越低,氛围越温和(但仍需谨慎体验)。

我们可以将这些 nn 家鬼屋视为一个无向图上的节点,该图有 mm 条边。现在,有 qq 名访客想去这些鬼屋体验。给定访客的当前位置和他们能承受的最大惊吓程度值,你的任务是计算访客与他能接受的最近鬼屋之间的最短距离。 在这个问题中,路径的距离定义为路径中的边数。

输入

每个测试文件中只有一个测试用例。

第一行包含三个整数 nnmmqq1n,m1051 \le n, m \le 10^51q5×1051 \le q \le 5 \times 10^5),分别表示鬼屋数量、边数量和访客数量。

第二行包含 nn 个整数 w1,w2,,wnw_1, w_2, \cdots, w_n1wi1001 \le w_i \le 100),其中 wiw_i 表示第 ii 个鬼屋的惊吓程度。

接下来的 mm 行,每行包含两个整数 uiu_iviv_i1ui,vin1 \le u_i, v_i \le nuiviu_i \ne v_i),表示连接鬼屋 uiu_iviv_i 的边。

再接下来的 qq 行,每行包含两个整数 pip_iaia_i1pin1 \le p_i \le n1ai1001 \le a_i \le 100),表示第 ii 个访客目前在鬼屋 pip_i,他能接受的最大惊吓程度是 aia_i

输出

输出 qq 行,其中第 ii 行包含一个整数,表示第 ii 个访客与他能接受的最近鬼屋之间的最短距离。如果没有这样的鬼屋,则输出 "-1"。

样例输入输出

输入样例

4 4 5
5 4 2 3
1 2
2 3
3 4
4 1
1 1
1 2
1 3
1 4
1 5

输出样例

-1
2
1
1
0 

限制与约定

对于 40%40\% 的样例,(1n100,1m10001 \le n \le 100 , 1 \le m \le 10001q1001 \le q \le 100

对于 100%100\% 的样例,点数 nn , 边数 mm ,游客数 qq1n,m1051 \le n, m \le 10^51q5×1051 \le q \le 5 \times 10^5)每个鬼屋的惊吓程度 ww1wi1001 \le w_i \le 100),对于每次查询的 p,ap,a1pin1 \le p_i \le n1ai1001 \le a_i \le 100),给定的结点 u,vu,v1ui,vin1 \le u_i, v_i \le nuiviu_i \ne v_i),保证图连通

  • 时间限制: 3s3 s
  • 空间限制: 256MB256 MB