™四万两千多行出的错
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,q;
int t[205];
int adj[205][205];
int dis[205][205];
bool rep[205];
signed main(){
cin>>n>>m;
for(int i=0;i<n;i++) cin>>t[i];
int x,y,ti;
for(int i=0;i<m;i++){
cin>>x>>y>>ti;
adj[x][y]=ti;
adj[y][x]=ti;
}
cin>>q;
int k=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j) dis[i][j]=0;
else if(adj[i][j]!=0) dis[i][j]=adj[i][j];
else dis[i][j]=0x3fffffff;
}
}
while(q--){
cin>>x>>y>>ti;
for(int i=0;i<n;i++){
if(t[i]<=ti) rep[i]=1;
}
if(!rep[x]||!rep[y]){
cout<<"-1\n";
continue;
}
for(;k<n&&rep[k];k++){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
}
}
if(dis[x][y]>1e9) cout<<"-1\n";
else cout<<dis[x][y]<<endl;
}
}