Cod sursa(job #951610)

Utilizator timicsIoana Tamas timics Data 21 mai 2013 01:02:20
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> a[100100];
int N,M,x,y,z;

int root(int k)
{
    int ret=k;
    while(a[ret].size()>0)
    {
        ret=a[ret][0];
    }
    return ret;
}

int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d%d",&N,&M);

    for(int i=1;i<=M;++i)
    {
        scanf("%d%d%d",&x,&y,&z);
        if(x==2)
        {
            if(root(y)==root(z))
               printf("DA\n");
            else
                printf("NU\n");
        }
        if(x==1)
        {
            int d=root(y);
            int e=root(z);
            a[d].push_back(e);
          /*  for(int j=1;j<=N;++j)
            {
                printf("%d  ",j);
                for(int k=0;k<a[j].size();++k)
                    printf("%d ",a[j][k]);
                printf("\n");
            }
            printf("\n");*/
        }
    }
    return 0;

}