Pagini recente » Cod sursa (job #1477399) | Cod sursa (job #318467) | Cod sursa (job #2418730) | Cod sursa (job #2946684) | Cod sursa (job #1844601)
#include <bits/stdc++.h>
using namespace std;
struct nod{
int sur,dest,len;
};
nod a[100100];
int p[100100],n,m;
int find1(int nod){
if (p[nod]==nod) return nod;
else{
int x=find1(p[nod]);
p[nod]=x;
return x;
}
}
void unite(int a,int b){
a=find1(a);
b=find1(b);
p[a]=b;
}
bool comp(nod a, nod b){
return a.len<b.len;
}
int N,M;
int main()
{
ifstream fin("arb.in");
ofstream fout("arb.out");
fin >>N>>M;
for(int i=1;i<=M;i++){ fin >>a[i].sur>>a[i].dest>>a[i].len;
// fout <<a[i].sur<<" "<<a[i].dest<<" "<<a[i].len<<endl;
}
sort(a+1,a+M+1,comp);
int sum=0;
for(int i=1;i<=M;i++) p[i]=i;
for(int i=1;i<=M;i++){
if (find1(a[i].sur)!=find1(a[i].dest)&&find1(a[i].dest)!=find1(a[i].sur)) {
fout <<a[i].sur<<" "<<a[i].dest<<endl;
unite(a[i].sur,a[i].dest);
}
}
//cout <<sum;
return 0;
}