Pagini recente » Cod sursa (job #938820) | Cod sursa (job #2849491) | Cod sursa (job #867015) | Cod sursa (job #1848070) | Cod sursa (job #2428113)
#include <bits/stdc++.h>
using namespace std;
#define st first
#define nd second
ifstream fin("apm.in");
ofstream fout("apm.out");
int n,m,x,y,cost,nod,ans,tata[200010],use[200010],nr;
vector <pair<int,pair<int,int>>> v;
int fat(int x)
{
if(tata[x]==x)
return x;
tata[x]=fat(tata[x]);
return tata[x];
}
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>cost;
v.push_back(make_pair(cost,make_pair(x,y)));
}
sort(v.begin(),v.end());
for(int i=1;i<=n;i++)
tata[i]=i;
for(int i=0;i<m;i++)
{
x=v[i].nd.st;
y=v[i].nd.nd;
x=fat(x);
y=fat(y);
if(x!=y)
{
tata[y]=x;
ans+=v[i].st;
use[i]=1;
nr++;
}
}
fout<<ans<<'\n'<<nr<<'\n';
for(int i=0;i<m;i++)
if(use[i])
fout<<v[i].nd.st<<' '<<v[i].nd.nd<<'\n';
return 0;
}