Cod sursa(job #1773373)

Utilizator alex.craciunCraciun Alexandru alex.craciun Data 7 octombrie 2016 19:35:33
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <cstdio>
using namespace std;
FILE *f=fopen("disjoint.in","r");
int n,m,v,x,y,t[100010];
FILE *f1=fopen("disjoint.out","w");
int radacina(int x)
{
    while(t[x]!=x)
        x=t[x];
    return x;
}
void citire( )
{
    fscanf(f,"%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        t[i]=i;
    for(int i=1;i<=m;i++)
    { fscanf(f,"%d%d%d",&v,&x,&y);
        if(v==1)
        {
           t[radacina(y)]=radacina(x);

        }

    else
        if(v==2)
    {
       if(radacina(x)==radacina(y))
        fprintf(f1,"DA\n");
       else
        fprintf(f1,"NU\n");

    }
    }


}
int main()
{
    citire();
    return 0;
}