Pagini recente » Cod sursa (job #2060118) | Cod sursa (job #187604) | Cod sursa (job #2236432) | 22_februarie_simulare_oji_2024_clasele_11_12 | Cod sursa (job #1397767)
#include <cstdio>
using namespace std;
#define MAXN 100010
int TT[MAXN];
int N, M;
int find(int x) {
if (TT[x] == x)
return x;
else
return find(TT[x]);
}
void unite(int x, int y) {
TT[y] = x;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d %d", &N, &M);
int i, t, x, y;
for (i = 1; i <= N; i++) {
TT[i] = i;
}
while (M--) {
scanf("%d %d %d", &t, &x, &y);
if (t == 1) {
unite(x, y);
} else if (t == 2) {
printf("%s\n", (find(x) == find(y) ? "DA" : "NU"));
}
}
return 0;
}