Pagini recente » Cod sursa (job #1096846) | Cod sursa (job #570049) | Cod sursa (job #177941) | Cod sursa (job #1365933) | Cod sursa (job #961418)
Cod sursa(job #961418)
#include <stdio.h>
using namespace std;
#define NMAX 100005
int N,T[NMAX],M;
void unite(int i,int j)
{
T[i]=j;
}
int find(int x)
{
int r=x;
while (T[r]) r=T[r];
int y=x,t;
while (y!=r)
{
t=T[y];
T[y]=r;
y=t;
}
return r;
}
int main()
{
freopen ("disjoint.in","r",stdin);
freopen ("disjoint.out","w",stdout);
scanf("%d %d\n",&N,&M);
int i,a,b,type;
for (i=1;i<=M;i++)
{
scanf("%d %d %d\n",&type,&a,&b);
if (type==1) unite(find(a),find(b));
if (type==2)
if (find(a)==find(b)) printf("DA\n");
else printf("NU\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}