Cod sursa(job #407438)

Utilizator alex@ndraAlexandra alex@ndra Data 2 martie 2010 12:40:41
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#include<vector>

using namespace std;


int padure[100001],n, x, y, m, nr, i;

void reuneste(int x, int y)
{
int m1,m2;
   
  m1=padure[x];
  m2=padure[y];
  for(i=1;i<=n;i++)
	  if (padure[i]==m2)
		  padure[i]=m1;

}

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

	
}

int main()
{  ifstream f("disjoint.in");
ofstream g("disjoint.out");
 f>>n>>m;
 for(i=1;i<=n;i++)
	 padure[i]=i;
 for(i=1;i<=m;i++)
	 {f>>nr>>x>>y;
	  if(nr==1) reuneste(x,y);
	  else if (nr==2) verifica(x,y);
	 }
	
	
	
	return 0;
}