Pagini recente » Cod sursa (job #1876985) | Cod sursa (job #318817) | Cod sursa (job #1967023) | Cod sursa (job #1810604) | Cod sursa (job #1260439)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
struct muchie
{
int x, y, l;
}mch;
int n, m, i, s, a[200005];
vector <muchie> v;
vector <muchie>::iterator it;
vector <muchie> r;
bool cmp(muchie a, muchie b)
{
return a.l<b.l;
}
int main()
{
freopen("apm.in", "r", stdin);
freopen("apm.out", "w", stdout);
scanf("%d%d", &n, &m);
while(m--)
{
scanf("%d%d%d", &mch.x, &mch.y, &mch.l);
v.push_back(mch);
}
sort(v.begin(), v.end(), cmp);
s=0;
for(i=1;i<=n;i++)
a[i]=i;
for(it=v.begin();it!=v.end();it++)
{
mch=*it;
if(a[mch.x]!=a[mch.y])
{
s+=mch.l;
r.push_back(mch);
m=a[mch.y];
for(i=1;i<=n;i++)
if(a[i]==m)
a[i]=a[mch.x];
}
}
printf("%d\n", s);
printf("%d\n", n-1);
for(it=r.begin();it!=r.end();it++)
printf("%d %d\n", (*it).x, (*it).y);
return 0;
}