Cod sursa(job #664864)
| Utilizator | Data | 21 ianuarie 2012 00:05:19 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.38 kb |
#include<stdio.h>
int T[100002],N,M,i,t,y,x;
int tt(int x)
{
while (x!=T[x]) x=T[x];
return x;
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&N,&M);
for (i=1;i<=N;i++) T[i]=i;
for (i=1;i<=M;i++)
{
scanf("%d%d%d",&t,&x,&y);
if (t==1) T[x]=y;
else if (tt(x)==tt(y)) printf("DA\n");
else printf("NU\n");
}
}