大佬帮孩子看看吧,除了#1都RE了P1525
#include <bits/stdc++.h>//only my railgun
#define int long long
using namespace std;
const int AC=1e6;
const int INF=1e18;
int n,m,k,head[AC*2],fa[AC*2],dr[AC*2];
struct st{
int u,v,w;
}e[AC*4];
inline void blyy(){
/*
dr[i]表示第i个人的敌人是谁
*/
}
inline int read()
{
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
inline void adde(int u,int v,int w){
e[++k].u=u;
e[k].v=v;
e[k].w=w;
}
inline bool cmp(st x,st y){
return x.w>y.w;
}
inline int find(int sop){
if(fa[sop]==sop) return sop;
return fa[sop]=find(fa[sop]);
}
inline int kwdr(int a,int b){
fa[find(a)]=find(b);
}
signed main(){
//freopen("P1525_2.in","r",stdin);
n=read();m=read();
for(int i=1;i<=AC*2;i++) fa[i]=i;
for(int i=1;i<=m;i++){
int u,v,w;
u=read();v=read();w=read();
adde(u,v,w);
}
sort(e+1,e+1+m,cmp);
// cout<<"\n\n\n\n\n\n\n";for(int i=1;i<=m;i++) cout<<e[i].u<<' '<<e[i].v<<' '<<e[i].w<<endl;
for(int i=1;i<=k;i++){
const int u=e[i].u,v=e[i].v;
int x=find(u),y=find(v);
if(x==y){
cout<<e[i].w;
return 0;
}
else{
if(dr[u]==0/*此时u没有任何敌人*/){
dr[u]=v;//v是u的敌人
}
else kwdr(dr[u],v);//把敌人归为一类
if(dr[v]==0/*此时v没有任何敌人*/){
dr[v]=u;//u是v的敌人
}
else kwdr(dr[v],u);
}
}
cout<<0;
}