Cod sursa(job #407447)

Utilizator alex@ndraAlexandra alex@ndra Data 2 martie 2010 12:45:38
Problema Paduri de multimi disjuncte Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
#include<vector>
#include<fstream>

using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");


int padure[100001],n,m;

void reuneste(int x, int y)
{
int m1,m2,i;
   
  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()
{  int x, y,i,nr;
 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;
}