Pagini recente » Cod sursa (job #2277297) | Cod sursa (job #2420148) | Cod sursa (job #405257) | Cod sursa (job #971772) | Cod sursa (job #2115841)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
vector <pair<pair<int,int>,int>> p;
int n,m;
int t[200002];
int a,b,c;
vector <pair<int,int>> sol;
int suma;
int cauttata(int l)
{
if(t[l]==0)
return l;
t[l]=cauttata(t[l]);
return t[l];
}
bool cmp(pair<pair<int,int>,int> la, pair<pair<int,int>,int> lb)
{
return la.second<lb.second;
}
int main()
{
freopen("apm.in","r",stdin);
freopen("apm.out","w",stdout);
scanf("%d %d", &n,&m);
for(int i=0;i<m;++i)
{
scanf("\n%d %d %d", &a,&b,&c);
p.push_back({{a,b},c});
}
sort(p.begin(),p.end(),cmp);
for(pair<pair<int,int>,int> i: p)
{
int tx=cauttata(i.first.first), ty=cauttata(i.first.second);
if(tx!=ty)
{
suma+=i.second;
sol.push_back(i.first);
t[tx]=ty;
}
}
cout<<suma<<"\n"<<sol.size()<<"\n";
for(pair<int,int> i: sol)
{
cout<<i.first<<" "<<i.second<<"\n";
}
return 0;
}