Pagini recente » Cod sursa (job #251160) | Cod sursa (job #1085756) | Cod sursa (job #2864921) | Cod sursa (job #591005) | Cod sursa (job #2861584)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("apm.in");ofstream fout("apm.out");
int n,m;
struct muchie
{
int x,y,c;
};
bool ordine(muchie id1,muchie id2)
{
if (id1.c!=id2.c)
return id1.c<id2.c;
if (id1.x!=id2.x)
return id1.x<id2.x;
return id1.y<id2.y;
}
int main()
{
fin>>n>>m;
int v[n+1],sol[n],cost=0;
muchie U[m+1];
for (int i=1;i<=m;i++)
fin>>U[i].x>>U[i].y>>U[i].c;
sort(U+1,U+m+1,ordine);
for (int i=1;i<=n;i++)
v[i]=i;
int delta=1;
for (int i=1;i<=m && delta<=n;i++)
{
int n1=U[i].x,n2=U[i].y;
if (v[n1]!=v[n2])
{
sol[delta]=i;
cost+=U[i].c;
int val1=v[n1],val2=v[n2];
for (int j=1;j<=n;j++)
if (v[j]==val2)
v[j]=val1;
delta++;
}
}
fout<<cost<<'\n'<<n-1<<'\n';
for (int i=1;i<=n-1;i++)
fout<<U[i].x<<" "<<U[i].y<<'\n';
return 0;
}