Pagini recente » Istoria paginii runda/babaiatule/clasament | Cod sursa (job #2714087) | Rating Diana Crisan (dianacrisan) | Cod sursa (job #2422833) | Cod sursa (job #2352391)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fi("apm.in");
ofstream fo("apm.out");
struct muchie { int v1,v2,cost;};
int n,m;
muchie E[1001];
int C[101];
int REZ[1001];
int cmp(muchie a, muchie b)
{
return a.cost<b.cost;
}
int main()
{
fi>>n>>m;
for(int i=1;i<=m;i++)
fi>>E[i].v1>>E[i].v2>>E[i].cost;
sort(E,E+m+1,cmp);
for (int i=1;i<=n;i++)
C[i]=i;
int s=0;
int nr=0;
for(int i=1;i<=m;i++)
if(C[E[i].v1]!=C[E[i].v2])
{
nr++;
REZ[nr]=i;
s=s+E[i].cost;
/// unificare de arbori
int a,b;
a=C[E[i].v1];
b=C[E[i].v2];
for (int j=1;j<=n;j++)
if (C[j]==b)
C[j]=a;
}
fo<<s<<endl;
for(int i=1;i<=nr;i++)
fo<<E[REZ[i]].v1<<" "<<E[REZ[i]].v2<<endl;
fi.close();
fo.close();
return 0;
}