逛漫展
题号:NC224751
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

xmy来到黑职后和cr决定去逛漫展。
xmy这里有一份漫展的详细地图。
上面有N个展览场所,M条连接场馆的人行道。
xmy想要个程序处理这些数据,方便他和cr知道t时间从A场馆到B场馆的最短路程。
保证:每次查询的时间t,不小于上次查询的。
因为这个东西太简单了,所以让你去写一下练手。
以下为地图上的已知信息:
每个场所都标注了一个编号和开馆时间的范围是0到N-1。并且编号小的场馆,开馆时间不会晚于编号大的,也就是说开馆时间是

没有开馆的场馆是封锁的,不可以进入也不可以经过。
A与B之间的最短路径,是可以通过已经开馆的场馆进行中转来缩短的。

注:不要想太多,最短路程只计算场馆之间人行道的长度,不需要考虑利用场馆中转时需要在场馆内走的。

注:开馆后不会关馆。


输入描述:

第一行三个整数 N M Q (N个场馆 M条人行道 Q次查询)
第二行N个整数,为开馆时间,以及据上文,给出的数据
 
以下M行 每行三个整数 A B W (表示场馆A与场馆B之间存在一条长度W的人行道)
       
以下Q行 每行三个整数 A B T     (表示要查询场馆A与场馆B之间在时间T的最短路径长度)
       

输出描述:

共Q行,对每一个询问输出对应的答案
如果T时间 A,B未互通则输出-1
示例1

输入

复制
4 4 4 
1 2 3 4
1 2 1
3 1 1
2 3 2
0 1 4
2 1 2
3 1 2
1 2 3
0 3 4

输出

复制
-1
-1
1
5