Pagini recente » Cod sursa (job #1472132) | Cod sursa (job #2557607) | Cod sursa (job #18006) | Cod sursa (job #1232243) | Cod sursa (job #315502)
Cod sursa(job #315502)
#include<stdio.h>
#define NM 100001
int n;
int set[NM+1];
void Makeset(int x){
set[x]=x;
}
int Find(int x){
if(set[x]==x) return x;
else return Find(set[x]);
}
void Union(int x,int y){
int xroot=Find(x),yroot=Find(y);
set[xroot]=yroot;
}
int main(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int i,m,t,x,y,xr,yr;
scanf("%d%d",&n,&m);
i=1;
while(i<=n) Makeset(i++);
while(m--){
scanf("%d%d%d",&t,&x,&y);
switch(t){
case 1:Union(x,y);
break;
case 2:xr=Find(x);
yr=Find(y);
if(xr==yr) printf("DA\n");
else printf("NU\n");
break;
}
}
return 0;
}