Cod sursa(job #1392523)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 18 martie 2015 18:30:50
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdio>

using namespace std;

int tip,i,x,y,n,q,a[100004];

int Find(int x)
{
    int y;
    if(a[x]==0) return x;
    y=Find(a[x]);
    a[x]=y;
    return y;
}
inline void Union(int x,int y)
{
     a[x]=y;
}
int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);

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

    for(i=1;i<=q;++i)
    {
         scanf("%d%d%d",&tip,&x,&y);

         if(tip==1) Union(Find(x),Find(y));
         else
         {
              if(Find(x)==Find(y)) printf("DA\n");
              else printf("NU\n");
         }
    }
    return 0;
}