Pagini recente » Cod sursa (job #194260) | Cod sursa (job #1852799) | Cod sursa (job #2083420) | Cod sursa (job #1901358) | Cod sursa (job #3138176)
#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,s[400001],k,cm,p,q;
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; k=0; 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 && k<n-1;++i){
p=grup(x[v[i]]); q=grup(y[v[i]]);
if(p!=q){
cm+=c[v[i]]; t[p]=q; ++k; s[k]=v[i];
}
}
g<<cm<<'\n';
g<<n-1<<'\n';
for(i=1;i<n;++i) g<<x[s[i]]<<' '<<y[s[i]]<<'\n';
return 0;
}