F. Yuhina City

传统 6000 ms 1024 MiB
标准 IO
文本比较

题目描述

Let us commemorate our greatest comrade, Yuhina.

Yuhina City 是一个 nn 个点 mm 条边的无向连通图

现在有一些含有辐射的废料在城市的一些节点处泄露了,废料的辐射值会随着距离递减,即假如节点 ii 有一个辐射值为 rir_i 的废料,那么假如节点 jj 和节点 ii 的最短距离为 dd,那么节点 jj 的辐射值为 max(0,rid)\max(0,r_i-d)。假如一个点被多个废料影响,那么这个点的辐射值取最高的那个。

作为 Yuhina,你需要把救灾物资从节点 uu 送到另一个节点 vv,同时你有一件抗辐射服,最多可以抵挡 kk 次你在某个节点受到的辐射,那么你需要承受的辐射的最小值是多少。

即假如有一条从 uuvv 的路径,经过的节点的辐射值为 ru,ra,rb,,rvr_u,r_a,r_b,\dots,r_v,并且你的抗辐射服可以抵挡 kk 次你在某个节点受到的辐射,那么将这些节点的辐射值从大到小排序后,你需要承受的辐射值为其中第 k+1k+1 大的数字。假如这条路径上经过的节点数小于等于 kk 个,那么你需要承受的辐射值就是 00

输入格式

第一行,一个整数 t(1t104)t(1\le t\le 10^4),代表数据组数。

对于每组数据:

第一行,三个整数 n,m,q(2n105;n1m2105;1q5)n,m,q(2\le n\le 10^5;n-1\le m\le 2\cdot 10^5;1\le q\le 5),代表 Yuhina City 的节点数、连接这些节点的边数和你需要运送救灾物资的次数。

第二行,nn 个整数 r1,,rn(0ri1014)r_1,\dots,r_n(0\le r_i\le 10^{14}),代表每个点泄露的核废料的辐射值,假如 ri=0r_i=0,代表这个点没有核废料泄露。

接下来的 mm 行,每行三个整数 u,v,w(1u,vn,uv;1w109)u,v,w(1\le u,v\le n,u\neq v;1\le w\le 10^9),代表节点 uuvv 被一条长度为 ww 的无向边连接。

接下来的 qq 行,每行三个整数 u,v,k(1u,vn,uv;0kn)u,v,k(1\le u,v\le n,u\neq v;0\le k\le n),代表运送物资的起点和终点以及抗辐射服可以最多抵挡的辐射次数。

保证同一测试点 nn 的总和不超过 10510^5mm 的总和不超过 21052\cdot 10^5对于 qq 的总和没有额外约束。

输出格式

对于每次询问,输出一行整数,代表在这次运输救灾物资的过程中,需要承受的辐射的最小值。

样例

输入样例

2
3 2 4
0 10 0
1 2 9
2 3 10
1 3 0
1 3 1
1 3 2
1 3 3
6 10 5
5 0 11 15 11 0
2 1 8
3 1 3
3 4 1
5 1 3
6 2 1
2 6 3
6 5 4
3 2 6 
4 6 9
1 6 4
2 1 3
5 2 1
2 4 1
1 6 0
3 4 0

输出样例

10
1
0
0
0
8
8
11
15