Pagini recente » Cod sursa (job #1573135) | Cod sursa (job #1282915) | Cod sursa (job #882235) | Cod sursa (job #2687303) | Cod sursa (job #3040225)
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout("disjoint.out");
int n, m, x, y, tata[100005], op, rx, ry, nrNoduri[100005], maxim;
int radacina(int nr)
{
while(tata[nr] != nr)
{
nr = tata[nr];
}
return nr;
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
tata[i] = i;
for(int i = 1; i <= m; i++)
{
fin >> op;
fin >> x >> y;
rx = radacina(x);
ry = radacina(y);
if(op == 1)
{
if(rx != ry)
{
if(rx < ry)
{
while(tata[y] != y)
{
int aux = tata[y];
tata[y] = rx;
y = aux;
}
tata[y] = rx;
}
else
{
while(tata[x] != x)
{
int aux = tata[x];
tata[x] = ry;
x = aux;
}
tata[x] = ry;
}
}
}
else if(op == 2)
{
if(rx == ry)
fout << "DA\n";
else
fout << "NU\n";
}
}
}