Pagini recente » Cod sursa (job #2062046) | Cod sursa (job #2568945) | Cod sursa (job #1402698) | Cod sursa (job #1289294) | Cod sursa (job #2368265)
#include<stdio.h>
using namespace std;
int v[100001];
int sefsuprem(int nr){
if(v[nr]==nr)
return nr;
else
return v[nr]=sefsuprem(v[nr]);
}
void unire(int a,int b){
int sefx=sefsuprem(a);
int sefy=sefsuprem(b);
v[sefy]=sefx;
}
int main(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,m,i,cd,x,y;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
v[i]=i;
for(i=1;i<=m;i++){
scanf("%d%d%d",&cd,&x,&y);
if(cd==2){
if(sefsuprem(v[x])==sefsuprem(v[y]))
printf("DA\n");
else
printf("NU\n");
}
else{
unire(x,y);
}
}
return 0;
}