各位可以不用看全部代码,主要问题就是主程序第一行:加上之后就是wa,去掉后就a了,这是为什么啊......
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,m,q;
int dis[207][207],t[207],nw;
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
for(register int i=0;i<n;++i)
cin>>t[i];
for(register int i=0;i<n;++i)
for(register int j=0;j<n;++j)
{
if(i==j)dis[i][j]=0;
else dis[i][j]=1000000007;
}
for(register int i=1;i<=m;++i){
int x,y,w;cin>>x>>y>>w;
dis[x][y]=dis[y][x]=w;
}
cin>>q;
while(q--){
int x,y,z;cin>>x>>y>>z;
while(t[nw]<=z&&nw<n){
for(register int i=0;i<n;++i)
for(register int j=0;j<n;++j)
if(dis[i][j]>dis[i][nw]+dis[nw][j])dis[i][j]=dis[i][nw]+dis[nw][j];
nw++;
}
if(t[x]>z||t[y]>z){
puts("-1");
continue;
}
else if(dis[x][y]==1000000007)puts("-1");
else cout<<dis[x][y]<<endl;
}
return 0;
}