Pagini recente » Cod sursa (job #3254307) | Cod sursa (job #417578) | Cod sursa (job #288683) | Cod sursa (job #674086) | Cod sursa (job #779704)
Cod sursa(job #779704)
#include <stdio.h>
#define NMax 100010
const char IN[]="disjoint.in",OUT[]="disjoint.out";
int N,M;
int P[NMax];
int find(int x){
if (x==P[x]) return x;
return (P[x]=find(P[x]));
}
int main()
{
int i,c,x,y;
freopen(IN,"r",stdin);
scanf("%d%d",&N,&M);
for (i=1;i<=N;++i) P[i]=i;
freopen(OUT,"w",stdout);
while (M--)
{
scanf("%d%d%d",&c,&x,&y);
if (c==1)
P[find(x)]=P[find(y)];
else
printf("%s\n",find(x)==find(y) ? "DA" : "NU");
}
fclose(stdout);
fclose(stdin);
return 0;
}