Pagini recente » Cod sursa (job #2887727) | Cod sursa (job #1456612) | Cod sursa (job #2241877) | Cod sursa (job #798993) | Cod sursa (job #2906901)
#include<fstream>
#include<vector>
#include<algorithm>
#define ppp pair<int,pair<int,int>>
#define pp pair<int,int>
using namespace std;
int sum,n,m,t[200001];
fstream cin("amp.in",ios::in),cout("amp.out",ios::out);
vector<ppp>v;
vector<pp>arb;
int R(int x)
{
if(t[x] == x)
return x;
t[x] = R(t[x]);
return t[x];
}
void uni(int x,int y)
{
t[x] = t[y];
}
void krus()
{
int r1,r2;
for(auto x:v)
{
r1 = R(x.second.first);
r2 = R(x.second.second);
if(r1!=r2)
{
uni(r1,r2);
arb.push_back({x.second.first,x.second.second});
sum+=x.first;
}
}
}
int main()
{
cin>>n>>m;
for(;m;m--)
{
int x,y,w;
cin>>x>>y>>w;
v.push_back({w,{x,y}});
}
for(int i=1;i<=n;i++)
{
t[i] = i;
}
sort(v.begin(),v.end());
krus();
cout<<sum<<'\n'<<arb.size()<<'\n';
for(auto x:arb)
{
cout<<x.second<<' '<<x.first<<'\n';
}
return 0;
}