rt,只对了#10
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
const int N=1e4+5;
int n,m,s,t;
struct str{
int u,v,w;
}edge[2*N];
int fa[N];
int sum,cnt;
bool cmp(str a,str b){
return a.w<b.w;
}
int find(int a){
if(fa[a]==a)return a;
return fa[a]=find(fa[a]);
}
void klskr(){
for(int i=1;i<=m;i++){
int fau=find(edge[i].u),fav=find(edge[i].v);
if(fau==fav) continue;
fa[fau]=fav;
if(find(s)==find(t)){
cout<<edge[i].w;
return ;
}
}
}
int main(){
cin>>n>>m>>s>>t;
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=m;i++){
cin>>edge[i].u>>edge[i].v>>edge[i].w;
}
sort(edge+1,edge+1+n,cmp);
klskr();
}