Pagini recente » Cod sursa (job #1699326) | Cod sursa (job #2947367) | Cod sursa (job #321870) | Cod sursa (job #880278) | Cod sursa (job #2353189)
#include <iostream>
#include <fstream>
using namespace std;
const int dim = 100001;
int t[dim], nrMultimi, nrQuery;
int root(int nod) {
/* Functie ce leaga 2 noduri in acelasi arbore
Returneaza radacina acelui arbore*/
int radacina = nod, next;
while (t[radacina] != radacina) {
radacina = t[radacina];
}
while (t[nod] != nod) {
next = t[nod];
t[nod] = radacina;
nod = next;
}
return radacina;
}
void unite(int x, int y) {
/* Functie ce uneste 2 multimi*/
t[y] = x;
}
int main() {
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
for (int i = 1; i <= dim; i++) {
t[i] = i;
}
cin >> nrMultimi >> nrQuery;
for (int i = 1; i <= nrQuery; i++) {
int x, y, cod;
cin >> cod >> x >> y;
if (cod == 1) {
if (root(x) != root(y)) {
unite(root(x),root(y));
}
} else if (cod == 2) {
if (root(x) == root(y)) {
cout << "DA\n";
} else {
cout << "NU\n";
}
}
}
return 0;
}