Cod sursa(job #639636)

Utilizator crazzytudTudor Popa crazzytud Data 23 noiembrie 2011 18:11:20
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
int tata[100005];
int root(int x)
{
    if(tata[x]==0)
        return x;

    tata[x]=root(tata[x]);
    return tata[x];
}
int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    int kk,n,i,op,x,y;
    scanf("%d%d",&kk,&n);

    for(i=1;i<=n;i++)
    {
        scanf("%d%d%d",&op,&x,&y);
        x=root(x);
        y=root(y);
        if(op==1)
        {
            tata[x]=y;
            continue;
        }

        if(x==y)
        {
            printf("DA\n");
            continue;
        }
        printf("NU\n");
    }
    return 0;
}