//洛谷P1525关押罪犯
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int p[N << 1];
struct M
{
int a,b,c;
bool operator < (const M & T)const
{
return c > T.c;
}
};
int find(int x)
{
if(p[x] != x)p[x] = find(p[x]);
return p[x];
}
int main()
{
int n,m;
cin >> n >> m;
for(int i = 1;i <= n;i++)p[i] = i;
M d[m];
for(int i = 0;i < m;i++)
{
scanf("%d%d%d",&d[i].a,&d[i].b,&d[i].c);
}
sort(d,d+m);
for(int i = 1;i <= 2 * n;i++)p[i] = i;
for(int i = 0;i < m;i++)
{
int x = find(d[i].a),y = find(d[i].b);
if(x == y){cout << d[i].c;return 0;}
p[x] = find(d[i].b+n);
p[y] = find(d[i].a+n);
}
cout << 0;
return 0;
}
来源:CSDN
作者:Rocinantes
链接:https://blog.csdn.net/qq_37864334/article/details/104457885