Pagini recente » Cod sursa (job #1473285) | Cod sursa (job #823289) | Cod sursa (job #457896) | Cod sursa (job #1322716) | Cod sursa (job #1348441)
#include <fstream>
using namespace std;
int getRoot(int m[], int x);
int main()
{
int N, M, x, y, i, op;
ifstream f("disjoint.in");
f >> N >> M;
int m[N + 1];
for (i = 1; i <= N; i++)
m[i] = i;
ofstream g("disjoint.out");
for (i = 1; i <= M; i++)
{
f >> op >> x >> y;
if (op == 1)
m[y] = x;
else if (op == 2)
{
if (getRoot(m, x) == getRoot(m, y))
g << "DA\n";
else
g << "NU\n";
}
}
f.close();
return 0;
}
int getRoot(int m[], int x)
{
while (m[x] != x)
x = m[x];
return x;
}