Cod sursa(job #653329)

Utilizator suzanicaSuzanica Mihu suzanica Data 27 decembrie 2011 19:37:29
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<cstdio>
#define maxn 100001
using namespace std;

int tata[maxn], n, m, cod, x, y;

int find(int i)
{if(tata[i]!=i)
   tata[i]=find(tata[i]);
return tata[i];
}

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

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

for(; n; n--)
   tata[n]=n;

for(; m; m--)
   {scanf("%d %d %d", &cod, &x, &y);
    if(cod==1)
      tata[find(x)]=find(y);
	else {if(find(x)==find(y))
			printf("DA\n");
		  else printf("NU\n");;
		 }
   }

return 0;   
}