为什么运行错误?
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct edge{
int x,y,w;
}a[20010];
int m,n,s,t,F[20010];
bool cmp(edge p,edge q){
return p.w<q.w;
}
int find(int N){
if(F[N]==N) return F[N];
return F[N]=find(F[N]);
}
int main(){
cin>>m>>n>>s>>t;
for(int i=1;i<=m;i++){
cin>>a[i].x>>a[i].y>>a[i].w;
}
sort(a+1,a+1+m,cmp);
for(int i=1;i<=n;i++) F[i]=i;
for(int i=1;i<=m;i++){
int xx=find(xx),yy=find(yy);
if(xx!=yy) F[xx]=yy;
if(find(s)==find(t)){
cout<<a[i].w;
break;
}
}
return 0;
}