Cod sursa(job #1011118)

Utilizator heracleRadu Muntean heracle Data 16 octombrie 2013 11:06:20
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>

int n,k;
const int Q=100007;
int t[Q];

int radacinare(int x)
{
    if(t[x]==0)
        return x;
    t[x]=radacinare(t[x]);
    return t[x];
}


int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);

    scanf("%d%d",&n,&k);
    int l,x,y,act;
    for(int i=1; i<=k; i++)
    {
        scanf("%d%d%d",&l,&x,&y);

        if(l==1)
        {
            act=radacinare(x);
            t[y]=act;
            for(int j=act+1 ; j<=x ; j++)
            {
                t[j]=act;
            }
        }
        else
        {
            act=radacinare(y);

            if(act<=x)
            {
                printf("DA\n");
            }
            else
            {
                printf("NU\n");
            }


        }

    }

    return 0;
}