Pagini recente » Cod sursa (job #2238105) | Cod sursa (job #2280273) | Cod sursa (job #1305045) | Cod sursa (job #69858) | Cod sursa (job #1899068)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("apm.in");
ofstream cout("apm.out");
struct muchie
{
int x,y,c;
};
int cmp (muchie a, muchie b)
{
if(a.c<b.c)
return 1;
return 0;
}
muchie mu[400001],sol[400001];
int n,m,tata[200001],nr,i,x,y,cost,r1,r2;
void citire ()
{
int a,b,c;
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>mu[i].x>>mu[i].y>>mu[i].c;
}
int rad (int x)
{
while(tata[x]!=0)
x=tata[x];
return x;
}
int main()
{
citire();
sort(mu+1,mu+1+m,cmp);
i=1;
while(nr<n-1)
{
x=mu[i].x;
y=mu[i].y;
r1=rad(x);
r2=rad(y);
if(r1!=r2)
{
nr++;
sol[nr].x=x;
sol[nr].y=y;
tata[r2]=r1;
cost+=mu[i].c;
}
i++;
}
cout<<cost<<"\n"<<nr<<"\n";
for(int i=1;i<=nr;i++)
cout<<sol[i].x<<" "<<sol[i].y<<"\n";
return 0;
}