Pagini recente » Cod sursa (job #1254526) | Cod sursa (job #2042067) | Cod sursa (job #1744205) | Cod sursa (job #1106499) | Cod sursa (job #1348450)
#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[getRoot(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;
}