dp_hater @ 2023-07-04 16:14:01
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef unsigned long long sln;
int n,m;
int fa[10005];
struct Edge{
int u,v,w;
}e[10005];
bool cmp(Edge x,Edge y){
return x.w<y.w;
}
void init(){
for(int i=1;i<=n;i++){
fa[i]=i;
}
}
int Find(int v){
if(fa[v]==v) return v;
else{
fa[v]=Find(fa[v]);
return v;
}
}
bool unite(int x,int y){
int t1,t2;
t1=Find(fa[x]);
t2=Find(fa[y]);
if(t1!=t2){
fa[t2]=t1;
return 1;
}
else return 0;
}
signed main(){
cin>>n>>m;
init();
for(int i=1;i<=m;i++)
cin>>e[i].u>>e[i].v>>e[i].w;
sort(e+1,e+m+1,cmp);
int ans=0,cnt=n;
for(int i=1;i<=m;i++){
if(unite(e[i].u,e[i].v)){
ans+=e[i].w;
cnt--;
if(cnt==1) break;
}
}
if(cnt==1) cout<<ans;
else cout<<"orz";
cout<<endl;
return 0;
}
5AC 3WA 5MLE