【题目描述】
地震过后,所有的村庄都有一定的损毁,但公路依旧正常。在村庄重建好之前,所有与未重建完成村庄相连的公路均无法通车。
给定村庄数N以及M条公路的长度,村庄从0~N-1编号,公路是双向的,并给定第i个村庄重建完成的时间Ti,可以认为村庄是同时开始重建的并在第Ti天重建完成,且在当天即可通车。若Ti为0,则此村庄一开始就可以通车。
现有Q个询问,对于每个询问,需要输出在第t天,从村庄x到村庄y的最短路径长度为多少,如果无法找到从x村庄到y村庄的路径,或者村庄x或村庄y在第t天仍未重建完成,则输出-1。
【输入描述】
第一行输入两个正整数N、M,表示村庄的数目与公路的数目;
第二行输入N个非负整数T0、T1、······、TN–1,表示每个村庄重建完成的时间(T0 ≤ T1 ≤ ······ ≤ TN–1);
接下来M行,每行输入三个非负整数i、j、w,w为不超过10000的正整数,表示存在一条长度为w、连接村庄i和村庄j的道路(i ≠ j),数据保证对于任意一对村庄只存在一条道路;
第M+3行输入一个正整数Q,表示询问的数目;
接下来Q行,每行输入三个非负整数x、y、t,表示在第t天,询问从村庄x到村庄y的最短路径长度为多少,数据保证t不降。
【输出描述】
输出Q行,对于每一个询问输出一个数,表示答案,否则输出-1。
【样例输入】
4 5
1 2 3 4
0 2 1
2 3 1
3 1 2
2 1 4
0 3 5
4
2 0 2
0 1 2
0 1 3
0 1 4
【样例输出】
-1
-1
5
4
【数据范围及提示】
对于30%的数据,N ≤ 50;
对于30%的数据,Ti = 0;
对于50%的数据,Q ≤ 100;
对于100%的数据,N ≤ 200,M ≤ N*(N-1)/2,Q ≤ 50000。