Cod sursa(job #624299)

Utilizator akaSoarePoepscu Bogdan Ionut akaSoare Data 22 octombrie 2011 10:31:59
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>

using namespace std;

int n,m,op,x,y;
int tata[100100];

int zeul_zeilor(int i){
    if(tata[i]==i)
        return i;
    return tata[i]=zeul_zeilor(tata[i]);
}

void read(){
    scanf("%d %d", &n, &m);
    for(int i=0;i<=n;i++)
        tata[i]=i;
    for(int i=0;i<m;++i){
        scanf("%d %d %d", &op, &x ,&y);
        if(op==1){
            tata[y]=zeul_zeilor(x);
        }
        else
            if(zeul_zeilor(y)==tata[x])
                printf("DA\n");
            else
                printf("NU\n");

    }

}

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

}