Cod sursa(job #624303)

Utilizator Viva12Ferentz Sergiu Viva12 Data 22 octombrie 2011 10:33:52
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>

using namespace std;

int a[100100];
int n;
int m;

int zeu(int i)
{
    if(a[i]==i)
        return i;
    return a[i]=zeu(a[i]);
}

int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;i++)
        a[i]=i;

    for(int w=0;w<m;w++)
    {
        int x;
        int y;
        int ok;
        scanf("%d %d %d",&ok,&x,&y);
        if(ok==1)
        {
            a[zeu(y)]=zeu(x);
        }
        else
        {
            if(zeu(x)==zeu(y))
                printf("DA");
            else
                printf("NU");
            printf("\n");
        }

    }

    return 0;
}