Pagini recente » Cod sursa (job #1103259) | Cod sursa (job #2085036) | Cod sursa (job #1422092) | Cod sursa (job #2029854) | Cod sursa (job #1459328)
#include<fstream>
#include<algorithm>
using namespace std;
int t[200003], n, m, i, ra, rb, soll, nrsol;
pair <int, int> sol[200003];
struct x3{
int a;
int b;
int cost;
};
x3 x[400003];
int rad(int x){
while(t[x]>0)
x=t[x];
return x;
}
int cmp(x3 a, x3 b){
return a.cost<b.cost;
}
ifstream in("apm.in");
ofstream out("apm.out");
int main(){
in>>n>>m;
for(i=1; i<=n; i++)
t[i]=-1;
for(i=1; i<=m; i++)
in>>x[i].a>>x[i].b>>x[i].cost;
sort(x+1, x+m+1, cmp);
for(i=1; i<=m; i++){
ra=rad(x[i].a);
rb=rad(x[i].b);
if(ra==rb)
continue;
soll+=x[i].cost;
sol[++nrsol].first=x[i].a;
sol[nrsol].second=x[i].b;
if(ra<rb){
t[ra]+=t[rb];
t[rb]=ra;
}else{
t[rb]+=t[ra];
t[ra]=rb;
}
}
out<<soll<<"\n"<<nrsol<<"\n";
for(i=1; i<=nrsol; i++)
out<<sol[i].first<<" "<<sol[i].second<<"\n";
return 0;
}