Pagini recente » Cod sursa (job #69385) | Cod sursa (job #134691) | Cod sursa (job #2820113) | Cod sursa (job #712349) | Cod sursa (job #2175509)
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
typedef pair< int , int > PII;
int n, m, Dad[100100], Rang[100100];
int find(int x){
return (x == Dad[x] ? x : find(Dad[x]));
}
void unite(int x, int y){
x = find(x);
y = find(y);
if (Rang[x] > Rang[y]) swap(x, y);
Dad[x] = y;
Rang[y] += Rang[x];
}
int main(){
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) Dad[i] = i, Rang[i] = 1;
for (int t, x, y; m; m--){
cin >> t >> x >> y;
if (t == 1) unite(x, y);
else cout << (find(x) == find(y) ? "DA\n" : "NU\n");
}
return 0;
}