Cod sursa(job #772008)

Utilizator roxyroxy2011Luca Roxana roxyroxy2011 Data 27 iulie 2012 20:26:19
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#define NRMAX  100001

using namespace std;

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

int s[NRMAX],n,m;

int find(int);

int main()
{
    f>>n>>m;
    for (int i=1;i<=m;i++)
    {
        int tip,x,y,p;
        f>>tip>>x>>y;
        switch (tip)
		{
            case 1:
            p=find(x);
            s[p]=y;
            break;
            case 2:
            if (find(x)==find(y))
                g<<"DA";
            else g<<"NU";
            g<<'\n';
        }
    }
}

int find(int x)
{
    while (s[x]!=0)
    x=s[x];
    return x;
}