Pagini recente » Cod sursa (job #1011367) | Cod sursa (job #230567) | Cod sursa (job #1367782) | Cod sursa (job #3239597) | Cod sursa (job #998159)
Cod sursa(job #998159)
#include <stdio.h>
#include <vector>
#define NMax 100005
using namespace std;
int n;
vector<int> v[NMax];
int p[NMax];
int i, a[NMax], np;
int find_(int x)
{
np = 0;
for (i = x; p[i] != i; i = p[i])
a[np++] = i;
for (int j = 0; j < np; j++)
p[a[j]] = i;
return i;
}
void union_(int x, int y)
{
p[find_(x)] = y;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int m;
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
p[i] = i;
while (m--)
{
int x, y, t;
scanf("%d %d %d", &t, &x, &y);
if (t == 1)
{
union_(x, y);
}
else
{
if (find_(x) != find_(y))
printf("NU\n");
else
printf("DA\n");
}
}
return 0;
}