Pagini recente » Cod sursa (job #220072) | Cod sursa (job #25841) | Cod sursa (job #1583795) | Cod sursa (job #446344) | Cod sursa (job #1453909)
#include <bits/stdc++.h>
using namespace std;
#define Nmax 100005
#define DIM 3666013
char buffer[DIM];
int poz = DIM - 1;
void Read(int &A)
{
A = 0;
while('0' > buffer[poz] || buffer[poz] > '9')
if(++poz == DIM)
fread(buffer,1,DIM,stdin),poz = 0;
while('0' <= buffer[poz] && buffer[poz] <= '9')
{
A = A*10 + buffer[poz] - 48;
if(++poz == DIM)
fread(buffer,1,DIM,stdin),poz = 0;
}
}
int N,K;
int daddy[Nmax],Rank[Nmax];
void precomp()
{
for(int i = 1; i <= N; ++i){
daddy[i] = i;
}
}
int whos_ur_daddy(int k){
if(daddy[k] != k)
daddy[k] = whos_ur_daddy(daddy[k]);
return daddy[k];
}
void couple(int a,int b){
if(Rank[a] < Rank[b])
daddy[a] = b;
else
daddy[b] = a;
if(Rank[a] == Rank[b])
++Rank[a];
}
void Read()
{
///Read(N);Read(K);
scanf("%d%d",&N,&K);
precomp();
int a,b,t;
for(int i = 1; i <= K; ++i){
///Read(t);Read(a);Read(b);
scanf("%d%d%d",&t,&a,&b);
if(t == 1)
couple(whos_ur_daddy(a),whos_ur_daddy(b));
else{
if(whos_ur_daddy(a) == whos_ur_daddy(b))
printf("DA\n");
else
printf("NU\n");
}
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
Read();
return 0;
}