Pagini recente » Cod sursa (job #1842779) | Cod sursa (job #2147481) | Cod sursa (job #168930) | Cod sursa (job #898355) | Cod sursa (job #1348285)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
using namespace std;
ifstream in("apm.in");
ofstream out("apm.out");
struct ele
{
int x,y,c,e;
};
bool cmp(struct ele a,struct ele b)
{
if (a.c<b.c)
return true;
return false;
}
int main()
{
int n,m,i,j;
in>>n>>m;
struct ele v[m+1];
int exis[n+1];
for(i=1;i<=n;i++)
exis[i]=i;
struct ele ao;
for(i=1;i<=m+1;i++)
v[i].e =3;
for(i=1;i<=m;i++)
{
in>>ao.x;
in>>ao.y;
in>>ao.c;
v[i] = ao;
v[i].e = 0;
}
sort(v+1,v+m+1,cmp);
int costul=0,nr=0;
for(i = 1;i<=m;i++)
{
if (!(exis[v[i].x]== exis[v[i].y]))
{
for(j=1;j<=n;j++)
if (exis[j] == exis[v[i].x] &&j!=v[i].x)
exis[j] = exis[v[i].y];
nr++;
exis[v[i].x]=exis[v[i].y];
costul +=v[i].c;
}
else
v[i].e = 1;
}
out<<costul<<"\n";
out<<nr<<"\n";
for(i=1;i<=m;i++)
if(v[i].e==0)
out<<v[i].x<<" "<<v[i].y<<" "<<"\n";
return 0;
}