Pagini recente » Cod sursa (job #1264700) | Cod sursa (job #3237282) | Cod sursa (job #3241076) | Cod sursa (job #2055955) | Cod sursa (job #1385140)
#include<bits/stdc++.h>
using namespace std;
int Tata[100005], Rang[100005];
void Reuneste(int X, int Y)
{
if(Rang[X] > Rang[Y])
Tata[Y] = X;
if(Rang[X] < Rang[Y])
Tata[X] = Y;
if(Rang[X] == Rang[Y]) {
Tata[Y] = X;
Rang[X] ++;
}
}
int Find(int Nod)
{
if(Tata[Nod] == Nod)
return Nod;
return (Tata[Nod] = Find(Tata[Nod]));
}
int main()
{
int N, M;
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d%d", &N, &M);
for(int i = 1; i <= N; ++ i) {
Tata[i] = i;
Rang[i] = 1;
}
for( ; M ; -- M) {
int Cod, X, Y;
scanf("%d %d %d", &Cod, &X, &Y);
if(Cod == 1)
Reuneste(X, Y);
else {
if(Find(X) == Find(Y))
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}