Pagini recente » Cod sursa (job #3198156) | Cod sursa (job #2499600) | Cod sursa (job #627461) | Cod sursa (job #1692020) | Cod sursa (job #2525985)
#include <bits/stdc++.h>
#define NMAX (int)(1e5+4)
#define pb emplace_back
#define ft first
#define sd second
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
typedef pair <int, int> pairINT;
typedef long long ll;
int n,q,depth[NMAX],urm[NMAX];
int ufind(int);
int main(){
fin>>n>>q;
for(int type,x,y;q;--q){
fin>>type>>x>>y;
x=ufind(x); y=ufind(y);
if(type == 1){
if(depth[x] >= depth[y]){
urm[y]=x;
if(depth[x] == depth[y])
++depth[x];
}else
urm[x]=y;
}else fout<<(x == y ? "DA\n":"NU\n");
}
return 0;
}
int ufind(int node){
int temp=node,root;
while(urm[node])
node=urm[node];
root=node;
node=temp;
while(urm[node])
temp=urm[node],
urm[node]=root,
node=temp;
return root;
}