Pagini recente » Cod sursa (job #264156) | Cod sursa (job #2539600) | Cod sursa (job #3237590) | Cod sursa (job #2069981) | Cod sursa (job #2708266)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("apm.in");
ofstream cout("apm.out");
int n,m,sef[200001];
struct apm{int x,y,c;};
apm v[400001];
bool cmp(apm a, apm b)
{
if(a.c<b.c)
{
return true;
}
return false;
}
int sefsuprem(int nod)
{
if(sef[nod]==nod)
{
return nod;
}
else
{
return sef[nod]=sefsuprem(sef[nod]);
}
}
int main()
{
int i,ct=0,sef1,sef2,s=0;
cin>>n>>m;
for(i=1;i<=m;i++)
{
sef[i]=i;
}
for(i=1;i<=m;i++)
{
cin>>v[i].x>>v[i].y>>v[i].c;
}
sort(v+1,v+1+m,cmp);
i=1;
while(ct<n-1)
{
sef1=sefsuprem(v[i].x);
sef2=sefsuprem(v[i].y);
if(sef1!=sef2)
{
sef[sef2]=sef1;
s+=v[i].c;
ct++;
v[ct]=v[i];
}
i++;
}
cout<<s<<"\n"<<n-1<<"\n";
for(i=1;i<n;i++)
{
cout<<v[i].x<<" "<<v[i].y<<"\n";
}
return 0;
}