Pagini recente » Cod sursa (job #842953) | Cod sursa (job #2687745) | Cod sursa (job #2056510) | Cod sursa (job #2293764) | Cod sursa (job #744743)
Cod sursa(job #744743)
#include <cstdio>
#define MAX 100010
int rad[MAX];
int tata(int x){
while(x!=rad[x])x=rad[x];
return x;
}
void update(int x){
if(x!=rad[x])update(rad[x]);
rad[x]=rad[rad[x]];
}
int main(){
int n,m,c,x,y;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)rad[i]=i;
for(int i=1;i<=m;i++)
{
scanf("%d %d %d",&c,&x,&y);
if(c==1)rad[tata(x)]=tata(y); else
if(tata(x)==tata(y))printf("DA\n"); else printf("NU\n");
update(x);
update(y);
}
fclose(stdout);
return 0;
}