Cod sursa(job #1848888)

Utilizator PaterucAPetruc Andrei Stefan PaterucA Data 16 ianuarie 2017 19:50:32
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N=100010;
int n, m, i, t[N], x, y, c, compr(int );

int main()
{
    inf>>n>>m;

    for(i=1; i<=n; i++)
        t[i]=i;
    for(;m;m--)
    {
        inf>>c>>x>>y;
        x=compr(x);
        y=compr(y);
        if(c==1)
            t[x]=y;
        else
            x==y?outf<<"DA\n":outf<<"NU\n";
    }

    return 0;
}
int compr(int v)
{
    if(t[v]==v)
        return v;
    t[v]=compr(t[v]);
    return t[v];
}