Cod sursa(job #1013598)

Utilizator ana@mariaAna Maria Savastre ana@maria Data 21 octombrie 2013 12:13:12
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
using namespace std;

ifstream in("disjoint.in");
ofstream out ("disjoint.out");

int t[100001];
int radacina (int x)
{
    if (t[x]==0)
        return x;
    t[x]=radacina(t[x]);
    return t[x];
}
int main()
{
    int n,m, i,x,y,op, radx, rady;
    in>>n>>m;
    for (i=1; i<=m; i++)
    {
        in>>op>>x>>y;
        if (op==1)
        {
            radx=radacina(x);
            rady=radacina(y);
            t[rady]=radx;
        }

        else
            if (radacina(x)==radacina(y))
                out<<"DA\n";
            else out<<"NU\n";
    }

    return 0;
}