Cod sursa(job #653296)

Utilizator I.AlexandruIlie Alexandru I.Alexandru Data 27 decembrie 2011 19:19:20
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<fstream>
#define maxn 100001
using namespace std;

ifstream f("disjoint.in");
ofstream g("disjoint.out");
int tata[maxn], n, m, cod, x, y;

int find(int i)
{if(tata[i]!=i)
   tata[i]=find(tata[i]);
return tata[i];
}

int main()
{f>>n>>m;

for(; n; n--)
   tata[n]=n;

for(; m; m--)
   {f>>cod>>x>>y;
    if(cod==1)
      tata[find(x)]=find(y);
	else {if(find(x)==find(y))
			g<<"DA"<<endl;
		  else g<<"NU"<<endl;
		 }
   }

f.close();
g.close();
return 0;   
}