Cod sursa(job #1856597)

Utilizator Deea007Andreea Deea007 Data 25 ianuarie 2017 09:21:08
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>

using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int N, M, A[100001], cod, x, y;

int find(int x)
{
	if (A[x]==x) return x;
	int P=find(A[x]);
	A[x]=P;
	return P;
}

void unire (int a, int b)
{
	a=find(a); b=find(b);
	A[a]=b;
}


int main()
{
	cin>>N>>M;
	for(int i=1; i<=M; i++)
	{
		A[i]=i;
	}
	
	for(int i=1; i<=M; i++)
	{
		cin>>cod>>x>>y;
		if (cod==1) unire(x,y);
		   else 
		   		if (find(x)==find(y)) cout<<"DA\n";
		   		   else cout<<"NU\n";
	}
return 0;	
}