#include<bits/stdc++.h>
using namespace std;
struct node{
int u,v,d;
}a[11000];
int n,fat[11000];
int cmp(node q,node p){
return q.d<p.d;
}
int find(int x){
if(x==fat[x])return x;
return fat[x]=find(fat[x]);
}
int Kruskal(int l,int r){
int i;
int q=find(a[r].u);
int p=find(a[r].v);
if(q!=p)fat[q]=p;
int s=find(1);
for(i=2;i<=n;i++)
if(find(i)!=s)return -1;
return a[r].d-a[l].d;
}
int main(){
int i,l,r,m,t,ans;
while(scanf("%d%d",&n,&m)&&(n||m)){
ans=1e9;
for(i=1;i<=m;i++)
scanf("%d%d%d",&a[i].u,&a[i].v,&a[i].d);
sort(a+1,a+1+m,cmp);
for(l=1;l<=m;l++){
for(i=1;i<=n;i++)
fat[i]=i;
for(r=l;r<=m;r++){
t=Kruskal(l,r);
if(t!=-1){
ans=min(ans,t);
break;
}
}
}
if(ans!=1e9)printf("%d\n",ans);
else printf("-1\n");
}
}
UVA 1395 Slim Span
最新推荐文章于 2018-07-16 21:32:08 发布