Pagini recente » Cod sursa (job #1541039) | Cod sursa (job #2627492) | Cod sursa (job #2633450) | Cod sursa (job #500402) | Cod sursa (job #266847)
Cod sursa(job #266847)
#include <stdio.h>
#define NMAX 100010
long n, m;
long a[NMAX];
int find(int x)
{
if(a[x] == x) return x;
x = find(a[x]);
a[x] = x;
return x;
}
void join(int x, int y)
{
if(x&1)
a[x] = y;
else
a[y] = x;
}
int main()
{
long i;
long o, x, y;
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%ld %ld", &n, &m);
for(i = 1; i <= n; ++i) a[i] = i;
while(m--)
{
scanf("%ld %ld %ld", &o, &x, &y);
if(o == 1)
{
x = find(x);
y = find(y);
join(x, y);
}
else
{
x = find(x);
y = find(y);
if(x == y)
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}