Cod sursa(job #405018)

Utilizator alex@ndraAlexandra alex@ndra Data 27 februarie 2010 11:33:08
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
#include<vector>

using namespace std;


int padure[100001],n;

void reuneste(int x, int y)
{
	int m1, m2,i;
  m1=padure[x];
  m2=padure[y];
  
 
	  for(i=1;i<=n;i++)
	    if(padure[i]==m2)
	       padure[i]=m1;
   
  

}

void verifica(int x, int y)
{
	if(padure[x]==padure[y])
		printf("DA\n");
	else
		printf("NU\n");
}

int main()
{
	int m, i, cod, x,y;
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	
	scanf("%d%d",&n,&m);
	
	for(i=1;i<=n;i++)
		padure[i]=i;
	
	for(i=1;i<=m;i++)
	{
	  scanf("%d%d%d",&cod,&x,&y);
	  
	    if(cod==1)
			reuneste(x,y);
		else
			verifica(x,y);
	}
	
	return 0;
}