Cod sursa(job #803913)
| Utilizator | Data | 28 octombrie 2012 15:59:50 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<cstdio>
#define BM 100005
int mp[BM];
int a[BM],n,m;
int main () {
int i,op,x,y,j,k;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;++i)mp[i]=i;
for(i=1;i<=m;++i){
scanf("%d %d %d",&op,&x,&y);
// fprintf(stderr,"%d %d\n",mp[x],mp[y]);
if(op==1)mp[x]=mp[y];
else{
for(j=mp[x];j!=mp[j];j=mp[j]);
for(k=mp[y];k!=mp[k];k=mp[k]);
if(j==k)printf("DA\n");
else printf("NU\n");
}
}
return 0;
}
