Cod sursa(job #2682015)
Utilizator | Data | 7 decembrie 2020 16:25:33 | |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 70 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.32 kb |
#include <fstream>
std::ifstream f("disjoint.in");
std::ofstream g("disjoint.out");
int x,m,v[100001];
int rad(int x){
while(v[x]){x=v[x];}
return x;
}
main(){
int caz,x,y;
f>>x>>m;
while(m--){
f>>caz>>x>>y;
if(caz==1) v[rad(x)]=rad(y);
else if(rad(x)==rad(y)) g<<"DA\n";
else g<<"NU\n";
}
}