Cod sursa(job #1856593)

Utilizator shaghiCatalina Sagan shaghi Data 25 ianuarie 2017 09:10:50
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>

using namespace std;

ifstream cin("disjoint.in");
ofstream cout("disjoint.out");

long long n,m, A[100100],x,t,y,z;

int find(long long 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; cin>>m;
	for(int i=1;i<=n;i++){
		A[i]=i;
	}
	while(m--){
		cin>>t>>z>>y; 
		if(t==1){
			unire(z,y);
		}
		if(t==2){
			if(find(z)==find(y)) cout<<"DA"<<'\n';
			else cout<<"NU"<<'\n';
		}
	}
	return 0;
}