Pagini recente » Cod sursa (job #2800457) | Cod sursa (job #772426) | Cod sursa (job #1151972) | Cod sursa (job #2042581) | Cod sursa (job #624323)
Cod sursa(job #624323)
#include <cstdio>
#include <algorithm>
#define mmax 200100
using namespace std;
struct ceva{
int x;
int y;
int c;
}c[mmax];
bool b[mmax];
int a[mmax];
int s;
int s2;
int n;
int m;
bool cmp(ceva a, ceva b)
{
if(a.c<b.c)
return true;
return false;
}
int zeu(int i)
{
if(a[i]==i)
return i;
return a[i]=zeu(a[i]);
}
int main()
{
freopen("apm.in","r",stdin);
freopen("apm.out","w",stdout);
scanf("%d %d",&n,&m);
for ( int i = 1 ; i <= n ; i++ )
a[i] = i ;
for ( int i = 1 ; i <= m ; i++ )
{
scanf("%d %d %d",&c[i].x , &c[i].y, &c[i].c);
}
sort( c+1, c+m+1, cmp);
for(int i = 1; i <= m; i++)
{
if(zeu(c[i].x) == zeu(c[i].y) )
continue;
a[zeu(c[i].x)] = zeu(c[i].y);
s+=c[i].c;
b[i]=1;
s2++;
}
printf("%d\n%d\n",s,s2);
for(int i=1;i<=m;i++)
{
if(b[i])
{
printf("%d %d\n",c[i].x,c[i].y);
}
}
return 0;
}