Cod sursa(job #2803836)
| Utilizator | Data | 20 noiembrie 2021 15:10:28 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
const string msj[] = {"NU", "DA"};
const int DIM = 100005;
int n, m, tata[DIM];
int rad(int nod){
if(nod == tata[nod])
return nod;
return tata[nod] = rad(tata[nod]);
}
int main (){
fin>>n>>m;
for(int i=1; i<=n; i++)
tata[i] = i;
int op, x, y;
while(m--){
fin>>op>>x>>y;
if(op == 1)
tata[rad(y)] = rad(x);
else
fout<<msj[rad(x) == rad(y)]<<"\n";
}
return 0;
}
