Cod sursa(job #925945)

Utilizator andrettiAndretti Naiden andretti Data 24 martie 2013 20:39:05
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<stdio.h>
#define maxn 100005
using namespace std;

int n,m;
int t[maxn];

int search(int k)
{
    if(t[k]==k) return k;
    t[k]=search(t[k]);
    return t[k];
}

void cit()
{
    int i;
    int x,y,c;
    int rx,ry;

    scanf("%d%d",&n,&m);

    for(i=1;i<=n;i++) t[i]=i;
    for(i=1;i<=m;i++)
    {
        scanf("%d%d%d",&c,&x,&y);

        rx=search(x);
        ry=search(y);
        if(c==1) t[rx]=ry;
        else
         {
             if(rx==ry) printf("DA\n");
             else
              printf("NU\n");
         }
    }
}

int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);

    cit();

    fclose(stdin);
    fclose(stdout);
    return 0;
}