Cod sursa(job #3217557)
| Utilizator | Data | 23 martie 2024 16:29:13 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
using namespace std;
#define NMAX 100000
int n, m;
int t[NMAX + 1];
int rad(int x) {
while (t[x] != 0) {
x = t[x];
}
return x;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
cin >> n >> m;
for (int i = 0; i < m; i += 1) {
int cod, x, y;
cin >> cod >> x >> y;
if (cod == 1) {
t[rad(y)] = rad(x);
} else {
cout << (rad(x) == rad(y) ? "DA" : "NU") << '\n';
}
}
return 0;
}