#include<bits/stdc++.h>
using namespace std;
int cnt,t[210],n,m,tim[210],vis[210],G[210][210];
int main(){
memset(G,1000000,sizeof(G));
cin>>n>>m;
for(int i = 0;i < n;i++){
cin>>t[i];
G[i][i] = 0;
}
for(int i = 1;i <= m;i++){
int a,b,c;
cin>>a>>b>>c;
G[a][b] = G[b][a] = c;
}
int l;
cin>>l;
while(l--){
int a,b,c;
cin>>a>>b>>c;
for(int k = 0;k < n;k++){
if(t[k] <= c && !vis[k]){
vis[k] = 1;
for(int i = 0;i < n;i++)
for(int j = 0;j < n;j++)
if(G[i][j] > G[i][k] + G[k][j])
G[i][j] = G[i][k] + G[k][j];
}
}
if (t[a] <= c && t[b] <= c && G[a][b] < 1000000) cout<<G[a][b]<<endl;
else cout<<-1<<endl;
}
}
不知道错哪了,求调 rt