Cod sursa(job #1166380)

Utilizator projectanduFMI Stanescu Andrei Alexandru projectandu Data 3 aprilie 2014 15:24:36
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream d("disjoint.in");
ofstream o("disjoint.out");
const int N=1e6+1;

int *tata;

void uunion(int x,int y)
{
    tata[x]=y;
}

int findd(int x)
{
    if(x != tata[x])
        return findd(tata[x]);
    return x;
}

int main()
{
    int cod,x,y;
    d>>x>>y;

//    cout << "x = " << x << endl;
    tata=new int[x + 1];
    //return 0;
    for(int i=1;i<=x;i++)
        tata[i]=i;
    while(d>>cod>>x>>y)
    {
        if(cod==1)
            uunion(x,y);
        else
        {
            if(findd(x)==findd(y))
                o<<"DA\n";
            else
                o<<"NU\n";
        }

    }


    return 0;
}