Pagini recente » Cod sursa (job #2326024) | Cod sursa (job #2839749) | Cod sursa (job #2664944) | Cod sursa (job #226883) | Cod sursa (job #1218330)
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
vector<pair<int,pair<int,int> > > v;
int s[200010];
vector<int> nod;
int n,m,i,a,b,j,cost,nr,c,aux;
int main()
{
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)
s[i]=i;
sort(v.begin(),v.begin()+v.size());
for(i=0;i<m;++i)
{
a=v[i].second.first; b=v[i].second.second;
if(s[a]!=s[b])
{
for(j=1;j<=n;++j)
if(s[j]==s[a]) s[j]=s[b];
cost+=v[i].first;
nod.push_back(i);
nr++;
}
if(nr==n-1)
break;
}
fout<<cost<<'\n'<<n-1<<'\n';
for(i=1;i<n;++i)
fout<<v[nod[i-1]].second.first<<" "<<v[nod[i-1]].second.second<<'\n';
return 0;
}