Cod sursa(job #1012195)

Utilizator hrazvanHarsan Razvan hrazvan Data 18 octombrie 2013 14:37:52
Problema Paduri de multimi disjuncte Scor 20
Compilator c Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>
int t[100000];

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

int main()
{
    FILE *in,*out;
    in=fopen("disjoint.in","r");
    out=fopen("disjoint.out","w");
    int n,k,i,a,b,c;
    fscanf(in,"%d%d",&n,&k);
    for(i=0;i<k;i++)
    {
        fscanf(in,"%d%d%d",&a,&b,&c);
        if(a==1)
        {
            t[radacina(b-1)]=radacina(c-1);
        }
        else
        {
            if(radacina(b-1)==radacina(c-1))  fprintf(out,"DA\n");
            else    fprintf(out,"NU\n");
        }
    }
    return 0;
}