Pagini recente » Cod sursa (job #1663030) | Cod sursa (job #2451819) | Cod sursa (job #724010) | Cod sursa (job #1355921) | Cod sursa (job #1609264)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
struct mk{
int x, y, c;
};
mk v[400010];
bool test(mk a, mk b){
return a.c<b.c;
}
int n, m, x, y, c, t;
int a[200010], s[200010];
int main(){
fin>>n>>m;
for(int i=1;i<=m;++i){
fin>>v[i].x>>v[i].y>>v[i].c;
}
sort(v+1, v+m+1, test);
for(int i=1;i<=n;++i) a[i]=i;
int k=0;
int p=1;
while(k<n-1){
if(a[v[p].x]!=a[v[p].y]){
++k;
s[k]=p;
t+=v[p].c;
int w1=a[v[p].x];
int w2=a[v[p].y];
for(int i=1;i<=n;++i)
if(a[i]==w1) a[i]=w2;
}
++p;
}
fout<<t<<'\n';
fout<<n-1<<'\n';
for(int i=1;i<=k;++i){
fout<<v[s[i]].x<<' '<<v[s[i]].y<<'\n';
}
return 0;
}