Cod sursa(job #1019838)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 31 octombrie 2013 23:25:41
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
#define dim 100006

using namespace std;


ifstream f("disjoint.in");
ofstream g("disjoint.out");
int T[dim];
int tip,x,y,n,m,a,b,i;
int tata(int x){
	int y=x;
	while(T[y]>=0){
		y=T[y];
	}
	return y;
}
int main (){
	f>>n>>m;
	
	
	for(i=1;i<=n;++i)
		T[i]=-1;
	
	for(i=1;i<=m;++i){
		f>>tip>>x>>y;
		
		a=tata(x);
		b=tata(y);
		if(tip==1){
			
			T[a]+=T[b];
			T[b]=a;
		}
		else {
			if(a!=b){
				g<<"NU\n";
			}
			else{
				g<<"DA\n";
			}
		}
		
	}
	return 0;
	
}