Cod sursa(job #983960)

Utilizator Anca_PaneaPanea Anca Anca_Panea Data 13 august 2013 01:21:47
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
using namespace std;
#include<fstream>
ifstream eu("disjoint.in");
ofstream tu("disjoint.out");
#define Nmax 100005
int N,M,TT[Nmax];
void unite(int a,int b)
{
	TT[a]=b;
}
int find(int a)
{
	while(a!=TT[a])
		a=TT[a];
	return a;
}
int main()
{
	int a,b,op;
	eu>>N>>M;
	for(int i=1;i<=N;i++)
		TT[i]=i;
	while(M--)
	{
		eu>>op>>a>>b;
		if(op==1)
			unite(find(a),find(b));
		if(op==2)
			if(find(a)==find(b))
				tu<<"DA\n";
			else
				tu<<"NU\n";
	}
	return 0;
}