Type: Default 3000ms 256MiB

鬼屋游戏

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

问题描述

有从 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