Pagini recente » Cod sursa (job #749573) | Cod sursa (job #2313390) | Cod sursa (job #320482) | Cod sursa (job #1849798) | Cod sursa (job #1522609)
#include <bits/stdc++.h>
#define N 200100
#define M 400100
using namespace std;
typedef pair<int,int> ii;
typedef pair<int,ii> iii;
int va[M],vb[M];
int c[N];
iii e[M];
priority_queue<iii> Q;
int n,m,a,b,d;
int Find(int x){return (x==c[x])?x:Find(c[x]);}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("apm.in","r",stdin);
freopen("apm.out","w",stdout);
cin>>n>>m;
for(int i=0;i<m;++i)
{
cin>>e[i].second.first>>e[i].second.second>>e[i].first;
}
for(int i=1;i<=n;++i)
c[i]=i;
sort(e,e+m);
int sum=0;
int cnt=0;
for(int i=0;i<m;++i)
{
int d=e[i].first;
int a=e[i].second.first;
int b=e[i].second.second;
int t1=Find(a);
int t2=Find(b);
if(t1!=t2)
{
c[t2]=t1;
c[a]=t1;
c[b]=t1;
sum+=d;
va[cnt]=a;
vb[cnt]=b;
cnt++;
}
}
cout<<sum<<"\n";
cout<<cnt<<"\n";
for(int i=0;i<cnt;++i)
cout<<va[i]<<" "<<vb[i]<<"\n";
return 0;
}