Pagini recente » Cod sursa (job #930939) | Cod sursa (job #2801027) | Cod sursa (job #1219820) | Cod sursa (job #2921372) | Cod sursa (job #1711659)
#include<algorithm>
#include<iostream>
#include<fstream>
#include<vector>
#define DX 200005
using namespace std;
fstream fin("apm.in",ios::in),fout("apm.out",ios::out);
vector<pair<int,pair<int,int> > > v;
vector<pair<int,int> > r;
int p[DX],n,m;
int tatic(int nod)
{
if(p[nod]==nod) return nod;
return (p[nod]=tatic(p[nod]));
}
int main()
{
int a,b,c,d,e,i,j,total=0;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b>>c;
v.push_back(make_pair(c,make_pair(a,b)));
}
for(i=1;i<=n;i++) p[i]=i;
sort(v.begin(),v.end());
for(i=0;i<m;i++)
{
a=v[i].second.first;
b=v[i].second.second;
c=v[i].first;
d=tatic(a);
e=tatic(b);
if(d!=e)
{
total+=c;
p[d]=e;
r.push_back(make_pair(a,b));
}
}
fout<<total<<"\n";
fout<<r.size()<<"\n";
for(i=0;i<r.size();i++) fout<<r[i].first<<" "<<r[i].second<<"\n";
}