Cod sursa(job #404419)

Utilizator alex@ndraAlexandra alex@ndra Data 26 februarie 2010 09:30:02
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
using namespace std;

#define Nmax 100001

int vect[Nmax],n;

ofstream g("disjoint.out");

void modifica(int x, int y)
{
	int multime1, multime2,i;
  multime1=vect[x];
  multime2=vect[y];
  
  for(i=1;i<=n;i++)
	if(vect[i]==multime2)
		vect[i]=multime1;

}

void verifica(int x, int y)
{
	if(vect[x]==vect[y])
	  g<<"DA"<<"\n";
	else
	  g<<"NU"<<"\n";
}

int main()
{
	int op,x,y,i,m;
	
	ifstream f("disjoint.in");
	  f>>n>>m;
	  
	for(i=1;i<=n;i++)
		vect[i]=i;
	  
	for(i=1;i<=m;i++)
	{
		f>>op>>x>>y;
		
		if(op==1)
		  modifica(x,y);
		else
		  verifica(x,y);
	}
	
f.close();
g.close();
 return 0;
}