來源
3 3 1 2 23 2 3 1000 1 3 43
43
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;
const int maxn=10000+5;
int n,m,ans;
int father[maxn];
struct data{int start,end,dist;}line[maxn];
bool cmp(data a,data b) {return a.dist<b.dist;}
void init(){for(int i=1;i<=n;i++) {father[i]=i;}}
int findfa(int x) {return x==father[x]?x:father[x]=findfa(father[x]);}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d%d%d",&line[i].start,&line[i].end,&line[i].dist);
}
sort(line+1,line+1+m,cmp); init();
for(int i=1;i<=m;i++){
int j=findfa(line[i].start);
int k=findfa(line[i].end);
if(j==k) continue;
else father[j]=k;
ans=line[i].dist;
}
printf("%d\n",ans);
return 0;
}