Pagini recente » Cod sursa (job #2081723) | Cod sursa (job #686647) | Cod sursa (job #1866988) | Cod sursa (job #1105406) | Cod sursa (job #992640)
Cod sursa(job #992640)
# include <cstdio>
# include <algorithm>
using namespace std;
int n,m,i,l[400001],k,ct,j,a,b;
struct muchie
{
int x,y,c;
}u[400001],sol[400001];
bool cmp(muchie a, muchie b)
{
return a.c<b.c;
}
void citire()
{
scanf("%d%d",&n,&m);
for(i=1;i<=m;++i)
{
scanf("%d%d%d",&u[i].x,&u[i].y,&u[i].c);
l[i]=i;
}
}
void apm()
{
k=0;i=1;ct=0;
while(k<n-1)
{
if(l[u[i].x]!=l[u[i].y])
{
++k;
sol[k]=u[i];
ct+=u[i].c;
a=l[u[i].x];b=l[u[i].y];
for(j=1;j<=n;++j)
if(l[j]==b)l[j]=a;
}
++i;
}
}
void afisare()
{
printf("%d\n%d\n",ct,k);
for(i=1;i<=k;++i)
printf("%d %d\n",sol[i].x,sol[i].y);
}
int main()
{
freopen("apm.in","r",stdin);
freopen("apm.out","w",stdout);
citire();
sort(u+1,u+m+1,cmp);
apm();
afisare();
return 0;
}