Pagini recente » Cod sursa (job #2669478) | Cod sursa (job #1715481) | Cod sursa (job #1965964) | Cod sursa (job #1418658) | Cod sursa (job #649643)
Cod sursa(job #649643)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *fin=fopen("apm.in","r");
FILE *fout=fopen("apm.out","w");
struct muchie{
int a, b, cost;
};
muchie v[400010],muchii[400010];
int n,m,i,tati[200005],j,nr,k,t;
long long c;
int cmp(muchie a, muchie b){
return a.cost < b.cost;
}
int main(){
fscanf(fin,"%d %d",&n,&m);
for(i=1;i<=m;i++){
fscanf(fin,"%d %d %d",&v[i].a, &v[i].b, &v[i].cost);
}
sort(v+1,v+m+1,cmp);
for(i=1;i<=n;i++){
tati[i]=i;
}
for(i=1;i<=m;i++){
k=tati[v[i].a];
t=tati[v[i].b];
if( k != t )
{
for(j=1;j<=n;j++)
{
if( tati[ j ] == k )
{
tati[j]=t;
}
}
c+=v[i].cost;
nr++;
muchii[nr]=v[i];
}
}
fprintf(fout,"%lld\n%d",c, nr);
for(i=1;i<=nr;i++){
fprintf(fout,"\n%d %d",muchii[i].a , muchii[i].b);
}
return 0;
}