Pagini recente » Cod sursa (job #3144146) | Cod sursa (job #2123554) | Cod sursa (job #2626389) | Cod sursa (job #2692723) | Cod sursa (job #3233171)
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
int n,m;
int dad[100000];
int rg[100000];
void uniune(int a, int b){
if(rg[a] > rg[b]){
dad[b] = a;
}
else{
dad[a] = b;
if(rg[b] == rg[a]) rg[b]++;
}
}
int tata(int nod){
while(dad[nod] != nod) nod = dad[nod];
return nod;
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
cin >> n >> m;
for(int i = 0;i<n;i++) {
dad[i] = i;
rg[i] = 0;
}
while(m--){
int q;
cin >> q;
int a,b;
cin >> a >> b;
int x = tata(a);
int y = tata(b);
if(q == 1){
uniune(x,y);
}
else{
if(x == y) cout << "DA\n";
else cout<<"NU\n";
}
}
return 0;
}