Pagini recente » Cod sursa (job #2614224) | Cod sursa (job #2735273) | Cod sursa (job #78111) | Cod sursa (job #1428665) | Cod sursa (job #502234)
Cod sursa(job #502234)
#include <stdio.h>
using namespace std;
#define nmax 100005
int GR[nmax];
int n;
int grupa(int x)
{
if (GR[x] == x) return x;
GR[x] = grupa(GR[x]);
return GR[x];
}
void unire(int x, int y)
{
GR[grupa(x)] = grupa(y);
}
int main ()
{
int i, m, tip, x, y;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d", &n, &m);
for (i = 1; i <= n; ++i) GR[i] = i;
for (i = 1; i <= m; ++i)
{
scanf("%d%d%d", &tip, &x, &y);
if (tip == 1)
unire(x, y);
else
if (grupa(x) == grupa(y) ) printf("DA\n");
else printf("NU\n");
}
return 0;
}