Cod sursa(job #2174583)

Utilizator RG1999one shot RG1999 Data 16 martie 2018 12:39:00
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;
int n,m,x,y,i,dad1,dad2,fth[100001],c;
int T(int x)
{
    if(fth[x]!= x) fth[x]=T(fth[x]);
    return fth[x];
}
int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        fth[i]=i;
    for(i=1;i<=m;i++)
    {
        scanf("%d%d%d",&c,&x,&y);
        dad1=T(x);
        dad2=T(y);
        if(c==1)
        fth[dad1]=dad2;
        else
        {
            if(dad1==dad2)
                printf("DA\n");
            else
                printf("NU\n");
        }

    }
    return 0;
}