Cod sursa(job #1239096)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 8 octombrie 2014 10:52:03
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
using namespace std;
int m,i,n,P[100005];
int rez,pa,pb,a,b,tip;

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

int parinte(int v)
{
    if (v==P[v])
        return v;
    return parinte(P[v]);
}
int main()
{
    f>>n>>m;
    for (i=1;i<=n;i++)
         P[i]=i;

    rez=n;
    for (i=1;i<=m;i++)
    {
        f>>tip;
        if (tip==1)
        {
            f>>a>>b;
            pa=parinte(a);
            pb=parinte(b);
                P[pa]=pb;
        }

        else if (tip==2)
        {
           f>>a>>b;
            pa=parinte(a);
            pb=parinte(b);
            if (pa!=pb)
                g<<"NU"<<'\n';
            else
                g<<"DA"<<'\n';
        }

    }
    return 0;
}