Cod sursa(job #639455)

Utilizator theocmtAxenie Theodor theocmt Data 23 noiembrie 2011 12:06:37
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;

int t[100010];

int rad(int x)
{
    if(t[x]==-1)
        return x;
    int r=rad(t[x]);
    t[x]=r;
    return r;
}

int main()
{
    int n,m,i,q,x,y;
    ifstream in("disjoint.in");
    ofstream out("disjoint.out");
    in>>n>>m;
    for(i=1;i<=n;++i)
        t[i]=-1;
    for(i=1;i<=m;++i)
    {
        in>>q>>x>>y;
        if(q==2)
        {
            if(rad(x)==rad(y))
                out<<"DA\n";
            else
                out<<"NU\n";
        }
        else
        {
            t[rad(x)]=rad(y);
        }
    }
    return 0;
}