Cod sursa(job #2122546)

Utilizator andr3i_kaabAndrei Ciineanu andr3i_kaab Data 5 februarie 2018 11:21:08
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

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

int n, m, c, a[100005], s1, s2, dads[100005], h[100005];

int main()
{
    int i, j, x, y;
    f>>n>>m;
    for (i=1; i<=n; i++)
        a[i]=i;
    for (i=1; i<=m; i++)
    {
        f>>c>>x>>y;
        if (c==1)
        {
            /*s1=min(a[x], a[y]);
            s2=a[x]+a[y]-s1;
            for (j=1; j<=n; j++)
               if (a[j]==s2) a[j]=s1;*/
             dads[x]=y;
        }
        else
        {
            while (dads[x]!=0) x=dads[x];
            while (dads[y]!=0) y=dads[y];
            if (x==y) g<<"DA"<<"\n";
            else g<<"NU"<<"\n";
        }
    }
    return 0;
}