Cod sursa(job #1012183)

Utilizator usermeBogdan Cretu userme Data 18 octombrie 2013 14:17:23
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>

FILE*f=fopen("disjoint.in","r");
FILE*h=fopen("disjoint.out","w");

int t[100001];

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

char *ver(int x,int y){
    if ( tata(x)==tata(y) )return "DA";
    return "NU";
}

int main()
{
    int n;
    fscanf(f,"%d%d",&n,&n);
    for ( int i=1;i<=n;++i ){
        int k,x,y;
        fscanf(f,"%d%d%d",&k,&x,&y);
        if ( k==1 ){
            t[tata(y)]=tata(x);
        }
        if ( k==2 ){
            fprintf(h,"%s\n",ver(x,y));
        }
    }
    return 0;
}