Cod sursa(job #1399328)

Utilizator ButnaruButnaru George Butnaru Data 24 martie 2015 18:13:49
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>
int tip,x,y,n,m,i,t[100010];
int findroot(int x)
{
    while (t[x]>0) x=t[x];
    return x;
}
int main(){
FILE *fin,*fout;
fin=fopen("disjoint.in","r");
fout=fopen("disjoint.out","w");
fscanf(fin,"%d%d",&n,&m);
for (i=1;i<=m;i++){
    fscanf(fin,"%d%d%d",&tip,&x,&y);
    x=findroot(x);
    y=findroot(y);
    if (tip==1) t[x]=y; else
    if (x==y) fprintf(fout,"DA\n"); else fprintf(fout,"NU\n");
}
fclose(fin);
fclose(fout);
return 0;
}