#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAX 1000000
using namespace std;
long long par[MAX];
struct node
{
long long x,y,length;
}arr[MAX+5];
long long khoj_rep(long long r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
bool cmp(node lhs,node rhs)
{
return lhs.length<rhs.length;
}
int main()
{
long long n,m,i,j,u,v,counter,minimum_range;
while(cin>>n>>m)
{
if(n==0 && m==0)
{
break;
}
for(i=0;i<n;i++)
{
par[i]=i;
}
for(i=0;i<m;i++)
{
cin>>arr[i].x>>arr[i].y>>arr[i].length;
}
sort(arr,arr+m,cmp);
counter=0;
for(j=0;j<i;j++)
{
u=khoj_rep(arr[j].x);
v=khoj_rep(arr[j].y);
if(u!=v)
{
par[u]=v;
counter++;
minimum_range=arr[j].length;
}
}
if(counter==n-1)
{
cout<<minimum_range<<endl;
}
else
{
cout<<"IMPOSSIBLE"<<endl;
}
memset(par,0,sizeof(par));
}
return 0;
}
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAX 1000000
using namespace std;
long long par[MAX];
struct node
{
long long x,y,length;
}arr[MAX+5];
long long khoj_rep(long long r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
bool cmp(node lhs,node rhs)
{
return lhs.length<rhs.length;
}
int main()
{
long long n,m,i,j,u,v,counter,minimum_range;
while(cin>>n>>m)
{
if(n==0 && m==0)
{
break;
}
for(i=0;i<n;i++)
{
par[i]=i;
}
for(i=0;i<m;i++)
{
cin>>arr[i].x>>arr[i].y>>arr[i].length;
}
sort(arr,arr+m,cmp);
counter=0;
for(j=0;j<i;j++)
{
u=khoj_rep(arr[j].x);
v=khoj_rep(arr[j].y);
if(u!=v)
{
par[u]=v;
counter++;
minimum_range=arr[j].length;
}
}
if(counter==n-1)
{
cout<<minimum_range<<endl;
}
else
{
cout<<"IMPOSSIBLE"<<endl;
}
memset(par,0,sizeof(par));
}
return 0;
}
0 comments: (+add yours?)
Post a Comment