Cod sursa(job #928211)

Utilizator StanAndreiAndrei Stan StanAndrei Data 26 martie 2013 12:35:54
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>

using namespace std;

int N,T[100005],M;

void cit()
{
    scanf("%d %d\n",&N,&M);
}

int find(int x)
{
    while (T[x])
        x=T[x];
    return x;
}

void unite(int i,int j)
{
    T[i]=j;
}

void rez()
{
    int type,x,y;
    for (int i=1;i<=M;i++)
    {
        scanf("%d %d %d\n",&type,&x,&y);
        if (type==1) unite(x,y);
        if (type==2)
            if (find(x)==find(y)) printf("DA\n");
            else    printf("NU\n");
    }
}

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

    cit();
    rez();

    fclose(stdin);
    fclose(stdout);
    return 0;
}