Pagini recente » Cod sursa (job #416994) | Cod sursa (job #2797859) | Cod sursa (job #692447) | Cod sursa (job #3031197) | Cod sursa (job #2259033)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("apm.in");
ofstream out("apm.out");
int n,m,k[200001],p,r,l;
struct muchie
{ int x,y,c;
}a[400001];
bool cmp(muchie a,muchie b)
{ return a.c<b.c;
}
int main()
{ in>>n>>m;
for(int i=1;i<=m;i++)
in>>a[i].x>>a[i].y>>a[i].c;
sort(a+1,a+m+1,cmp);
for(int i=1;i<=n;i++)
k[i]=i;
for(int i=1;i<=m;i++)
{ if(k[a[i].x]!=k[a[i].y])
{ p=k[a[i].y];
for(int j=1;j<=m;j++)
if(k[j]==p)
k[j]=k[a[i].x];
r+=a[i].c;
l++;
}
}
out<<r<<'\n'<<l<<'\n';
for(int i=1;i<=n;i++)
k[i]=i;
for(int i=1;i<=m;i++)
{ if(k[a[i].x]!=k[a[i].y])
{ p=k[a[i].y];
for(int j=1;j<=m;j++)
if(k[j]==p)
k[j]=k[a[i].x];
out<<a[i].x<<' '<<a[i].y<<'\n';
}
}
in.close();
out.close();
return 0;
}