Pagini recente » Cod sursa (job #1243468) | Cod sursa (job #1367158) | Cod sursa (job #2058026) | Cod sursa (job #2891504) | Cod sursa (job #3138178)
#include <bits/stdc++.h>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
int n,m,i,j,x[400001],y[400001],c[400001],v[400001],t[200001],nr,cm,p,q;
vector<int> vct;
bool srt(int x,int y){
return c[x]<c[y];
}
int grup(int k){
if(t[k]==k) return k;
else return grup(t[k]);
}
int main()
{
f>>n>>m; cm=0;
for(i=1;i<=m;++i){
f>>x[i]>>y[i]>>c[i]; v[i]=i;
}
for(i=1;i<=n;++i) t[i]=i;
sort(v+1,v+m+1,srt);
//for(i=1;i<=m;++i) cout<<v[i]<<endl;
for(i=1;i<=m;++i){
p=grup(x[v[i]]); q=grup(y[v[i]]);
if(p!=q){
cm+=c[v[i]]; t[p]=q; vct.push_back(v[i]);
}
}
g<<cm<<'\n';
g<<n-1<<'\n';
for(i=0;i<=n-2;++i) g<<x[vct[i]]<<' '<<y[vct[i]]<<'\n';
return 0;
}