Pagini recente » Cod sursa (job #382852) | Cod sursa (job #2974154) | Cod sursa (job #3144544) | Cod sursa (job #1733335) | Cod sursa (job #3337981)
#include <iostream>
#include <bits/stdc++.h>
#define int long long
#define cin fin
#define cout fout
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int Nmax = 1e5;
int n, m;
int parent[Nmax + 50], Sz[Nmax + 50];
int find_parent(int a){
if(a == parent[a]){
return a;
}
return find_parent(parent[a]);
}
void union_sets(int a, int b){
a = find_parent(a);
b = find_parent(b);
if(a != b){
if(Sz[a] > Sz[b]){
swap(a ,b);
}
parent[b] = a;
Sz[a] += Sz[b];
}
}
signed main()
{
cin >> n >> m;
for(int i = 1; i <= n; ++ i){
parent[i] = i;
Sz[i] = 1;
}
for(int i = 1; i <= m; ++ i){
int t, x, y;
cin >> t >> x >> y;
if(t == 1) {
union_sets(x,y);
}
else{
x = find_parent(x);
y = find_parent(y);
if(x != y)
cout << "NU" << '\n';
else cout << "DA" << '\n';
}
}
return 0;
}