Pagini recente » Cod sursa (job #2037622) | Cod sursa (job #3311238) | Monitorul de evaluare | Cod sursa (job #2422964)
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int t[100000], n, m;
int root (int k)
{
if (t[k] == 0)
return k;
else
return t[k];
}
void unire (int k, int p)
{
int rk = root(k), rp = root(p);
if(rk != rp)
t[rk] = rp;
}
int main ()
{
f>>n; //nr multimi
f>>m; //nr operatii efectuate
for(int i=1; i<=m; i++)
{
int cod, x, y; //tipul operatiei + 2 nr in [1,n]
f>>cod>>x>>y;
if(cod == 1)
unire(x, y);
else if (cod == 2)
{
if(root(x) != root(y)) //se afla in aceeasi multime
g<<"NU\n";
else
g<<"DA\n";
}
}
}