#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int n,m,f[202];
struct node{
int x,y,w;
}e[1001];
int cmp(node a,node b)
{
return a.w>b.w;
}
int find(int x)
{
if(f[x]!=x)
f[x]=find(f[x]);
return f[x];
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
int i,j,k,t;
for(i=0;i<m;i++)
scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].w);
sort(e,e+m,cmp);
scanf("%d",&t);
while(t--)
{
int a,b,min=1000001;
scanf("%d%d",&a,&b);
for(i=0;i<m;i++)
{
for(j=1;j<=n;j++)
f[j]=j;
for(j=i;j<m;j++)
{
int aa,bb;
aa=find(e[j].x);
bb=find(e[j].y);
if(aa!=bb)
f[aa]=bb;
if(find(a)==find(b))
{
min=(e[i].w-e[j].w)<min?(e[i].w-e[j].w):min;
break;
}
}
}
if(min==1000001)
printf("-1\n");
else
printf("%d\n",min);
}
}
return 0;
}
hdu 1598 find the most comfortable road
最新推荐文章于 2018-05-21 22:05:44 发布