救救蒟蒻,第一次遇到这种,数组大小也够,怎么回事 记录
#include <bits/stdc++.h>
#define life Elaina
#define angle Exusiai
using namespace std;
const int N = 1e5 + 10;
int n, m;
struct node{
int a,b,c;
}data[N];
int fa[N];
int f[N];
bool cmp(node p,node q)
{
return p.c>q.c;
}
int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
int Union(int x,int y){
int p=find(x),q=find(y);
fa[p]=q;
}
bool Query(int x,int y){
int p=find(x),q=find(y);
if(p==q) return true;
return false;
}
signed main() {
cin>>n>>m;
for(int i=0;i<=n;i++)
fa[i]=i;
for(int i=1;i<=m;i++)
{
cin>>data[i].a>>data[i].b>>data[i].c;
}
sort(data+1,data+m+1,cmp);
for(int i=1;i<=m+1;i++)
{
if(Query(data[i].a,data[i].b)) {
cout<<data[i].c;
return 0;
}
else{
if(!f[data[i].b]) f[data[i].b]=data[i].a;
else Union(f[data[i].b],data[i].a);
if(!f[data[i].a]) f[data[i].a]=data[i].b;
else Union(f[data[i].a],data[i].b);
}
}
return 0;
}