Cod sursa(job #1971195)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 19 aprilie 2017 22:37:39
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
using namespace std;

int rad[100005];
int n,m;

int rada(int nod)
{
    if(rad[nod]==nod) return nod;
    else rad[nod]=rada(rad[nod]);
    return rad[nod];
}

int main()
{
    int t,x,y,i;
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++) rad[i]=i;
    for(;m;m--)
    {
        scanf("%d%d%d",&t,&x,&y);
        if(t==1) rad[x]=rada(y);
        else if(rada(x)==rada(y)) printf("DA\n");
                           else printf("NU\n");
    }
    fclose(stdin);
    fclose(stdout);
}