Pagini recente » Cod sursa (job #640044) | Cod sursa (job #603407) | Cod sursa (job #1214367) | Cod sursa (job #2852984) | Cod sursa (job #2094640)
#include <cstdio>
#include <cstring>
using namespace std;
int n, m, i, t[100002], p[100002], cod, x, y, rx, ry;
int root (int x)
{
while (t[x]!=x) x=t[x];
return x;
}
void uni (int x, int y)
{
if (p[x]<p[y]) t[x]=y;
if (p[x]>p[y]) t[y]=x;
if (p[x]==p[y]){
t[y]=x;
p[x]++;
}
}
int main ()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i=1; i<=n; i++) t[i]=i;
for (i=1; i<=m; i++){
scanf("%d%d%d", &cod, &x, &y);
if (cod==1){
rx=root(x);
ry=root(y);
if (rx!=ry) uni(rx, ry);
}
else{
rx=root(x);
ry=root(y);
if (rx==ry) printf("DA\n");
else printf("NU\n");
}
}
return 0;
}