代码:
#include <iostream>
#include <algorithm>
using namespace std;
int n,m;
struct node{
int t;
int d;
int x;
int y;
}a[114514];
bool cmp(node a,node b){
return a.d<b.d;
}
int find(int x){
if(a[x].d==x){
return x;
}
return a[x].d=find(a[x].d);
}
void h(int x,int y){
int a1=find(x),a2=find(y);
if(a1!=a2) a[a1].d=a2,n--;
}
int main(void){
cin>>n>>m;
for(int i=1;i<=n;i++){
a[i].d=i;
}
for(int i=1;i<=m;i++){
cin>>a[i].x>>a[i].y>>a[i].t;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=m;i++){
h(a[i].x,a[i].y);
if(n==1){
cout<<a[i].t;
return 0;
}
}
cout<<"-1";
}
#include <iostream>
#include <algorithm>
using namespace std;
int n,m;
struct node{
int t;
int d;
int x;
int y;
}a[114514];
bool cmp(node a,node b){
return a.d<b.d;
}
int find(int x){
if(a[x].d==x){
return x;
}
return a[x].d=find(a[x].d);
}
void h(int x,int y){
int a1=find(x),a2=find(y);
if(a1!=a2) a[a1].d=a2,n--;
}
int main(void){
cin>>n>>m;
for(int i=1;i<=n;i++){
a[i].d=i;
}
for(int i=1;i<=m;i++){
cin>>a[i].x>>a[i].y>>a[i].t;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=m;i++){
h(a[i].x,a[i].y);
if(n==1){
cout<<a[i].t;
return 0;
}
}
cout<<"-1";
}