Pagini recente » Cod sursa (job #72099) | Cod sursa (job #1004156) | Cod sursa (job #1127985) | Cod sursa (job #904032) | Cod sursa (job #1542458)
#include<cstdio>
#include<algorithm>
using namespace std;
struct aa{int x,y,c;};
aa vec[400001];
bool sortare(aa a, aa b)
{if(a.c<b.c)
return 1;
return 0;
}
int dad[200001];
struct aaa{int x,y;};
aaa v[200000];
int main ()
{freopen ("apm.in","r",stdin);
freopen ("apm.out","w",stdout);
int n,m,i,j,k,x,s=0,nr=0;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
scanf("%d%d%d",&vec[i].x,&vec[i].y,&vec[i].c);
sort(vec+1,vec+m+1,sortare);
for(i=1;i<=n;i++)
dad[i]=i;
for(i=1;i<=m;i++)
{k=vec[i].x;
x=vec[i].y;
while(k!=dad[k])
k=dad[k];
while(x!=dad[x])
x=dad[x];
if(k!=x)
{dad[x]=k;
s+=vec[i].c;
nr++;
v[nr].x=vec[i].x;
v[nr].y=vec[i].y;
}
}
printf("%d\n%d\n",s,nr);
for(i=1;i<=nr;i++)
printf("%d %d\n",v[i].x,v[i].y);
return 0;
}