Cod sursa(job #1581981)

Utilizator rzvrzvNicolescu Razvan rzvrzv Data 27 ianuarie 2016 15:03:32
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<cstdio>

using namespace std;

int pops[100002],i,n,m,op,x,y;

int dad(int nod)
{
    while(pops[nod]!=nod)
    {
        nod=pops[nod];
    }
    return nod;
}

int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    {
        pops[i]=i;
    }
    for(i=1;i<=m;i++)
    {
        scanf("%d%d%d",&op,&x,&y);
        if(op==1)
        {
            pops[x]=pops[dad(y)];
        }
        else
        {
            if(dad(x)==dad(y))
            {
                printf("DA\n");
            }
            else
            {
                printf("NU\n");
            }
        }
    }
    return 0;
}