Pagini recente » Cod sursa (job #175706) | Cod sursa (job #399075) | Cod sursa (job #513494) | Cod sursa (job #2245651) | Cod sursa (job #1333723)
#include <iostream>
#include <cstdio>
#include <algorithm>
#define NMAX 100005
using namespace std;
int n, m;
int a[NMAX], prev[NMAX];
char rasp[][3]={"NU", "DA"};
int par(int x)
{
if (a[x] == x)
return x;
return par(a[x]);
}
void unire(int x, int y)
{
a[par(x)] = par(y);
}
int check(int x, int y)
{
return par(x) == par(y);
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int o, x, y;
scanf("%d %d\n", &n, &m);
for (int i=1; i<=n; i++)
a[i] = i;
for (int i=0; i<m; i++){
scanf("%d %d %d\n", &o, &x, &y);
if (o==2){
printf("%s\n", rasp[check(x, y)]);
}
else{
unire(x, y);
}
}
return 0;
}