Cod sursa(job #779331)

Utilizator miadaradiciDaradici Mia miadaradici Data 17 august 2012 15:10:54
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
int i,n,m, oper,x,y,radx,rady,rad[100000];
int functie ( int p )
{
	while ( rad[p]!=p )
		p=rad[p];
	return p;
}
int main ()
{
	f>>n>>m;
	for ( i=1; i<=n; i++ )
		rad[i]=i;
	for ( i=1; i<=m; i++ )
	{
		f>>oper>>x>>y;
		if ( oper==1 )
		{
			radx=functie(x);
			rady=functie(y);
			if ( radx>rady )
				rad[y]=x;
			else
				rad[x]=y;
		}
		else
		{
			if ( functie(x)==functie(y) )
				g<<"DA"<<'\n';
			else
				g<<"NU"<<'\n';
		}
	}
	return 0;
}