Pagini recente » Cod sursa (job #2005942) | Cod sursa (job #2223992) | Cod sursa (job #197911) | Cod sursa (job #292657) | Cod sursa (job #1373222)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
int z,s[200001],n,m,i,j,sol,nr;
struct coce {int x,y,val,in;} v[400001];
bool cmp(coce a,coce b)
{
if (a.val<b.val)
return true;
else
return false;
}
void actualizare(int i)
{
z=s[i];
if (s[i]!=i)
actualizare(s[i]);
s[i]=z;
}
int main()
{
fin>>n>>m;
for (i=1;i<=m;i++)
fin>>v[i].x>>v[i].y>>v[i].val;
sort(v+1,v+1+m,cmp);
for (i=1;i<=n;i++)
s[i]=i;
for (i=1;i<=m;i++)
{
actualizare(v[i].x);
actualizare(v[i].y);
if (s[v[i].x]!=s[v[i].y])
{
sol+=v[i].val;
v[i].in=1;
nr++;
s[z]=s[v[i].x];
}
}
fout<<sol<<"\n"<<nr;
for (i=1;i<=m;i++)
{
if (v[i].in==1)
{
fout<<"\n"<<v[i].x<<" "<<v[i].y;
}
}
return 0;
}