Cod sursa(job #1011126)

Utilizator Tudordmdaniel marin Tudordm Data 16 octombrie 2013 11:17:06
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>

int t[100001];

int radacina(int x){

    if(t[x]==0) return x;

    t[x]=radacina(t[x]);

    return t[x];

}

bool coincid(int x,int y){

    if(radacina(x)==radacina(y))    return true;

    return false;

}

int main(){

    int cod,x,y,n,m,i;

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

    scanf("%d%d",&n,&m);

    for( i=1 ; i<=m ; i++ ){

        scanf("%d%d%d",&cod,&x,&y);

        if(cod==1){

            t[y]=radacina(x);

        }

        if(cod==2){

            if(coincid(x,y))  printf("DA\n");
            else printf("Nu\n");

        }
    }
    return 0;
}