Pagini recente » Cod sursa (job #3003540) | Cod sursa (job #2669100) | Cod sursa (job #1522736) | Cod sursa (job #97607) | Cod sursa (job #896268)
Cod sursa(job #896268)
#include <cstdio>
#define NMAX 100001
using namespace std;
int n,m,cod,x,y;
int father[NMAX],rang[NMAX];
int Comun(int nod){
while(father[nod]) nod = father[nod];
return nod;
}
void Adaug(int x,int y){
int v1 = Comun(x);
int v2 = Comun(y);
if(rang[v1] == rang[v2]){
father[v1] = v2;
rang[v2]++;
}
else if(rang[v1] < rang[v2])
father[v1] = v2;
else father[v2] = v1;
}
void citesc(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(register int i=1;i<=m;++i){
scanf("%d%d%d",&cod,&x,&y);
if(cod == 1)
Adaug(x,y);
else if(Comun(x) == Comun(y))
printf("DA\n");
else printf("NU\n");
}
}
int main(){
citesc();
return 0;
}