Cod sursa(job #742644)

Utilizator StrajanStrajan Sebastian Ioan Strajan Data 30 aprilie 2012 22:16:17
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#define MAX 100001
#include<fstream>

int T[MAX];

int tata(int nod){
	if ( nod != T[nod]) T[nod] = tata(T[nod]);
	return T[nod];
}

int main(){
	int n, m, x, y, i, cod;
	ifstream fin("disjoint.in");
	ofstream fout("disjoint.out");
	fin>>n>>m;
	
	for (i = 1; i <= n; i++) T[i] = i;

	for (i = 1; i <= m; i++){
		fin>>cod>>x>>y;
		x = tata(x);
		y = tata(y);
		if (cod == 1) T[x] = y;
		else x == y ? fout<<"DA\n" : fout<<"NU\n";
	}
	fin.close();
	fout.close();

	return 0;
}