Pagini recente » Cod sursa (job #1780237) | Cod sursa (job #99824) | Cod sursa (job #749416) | Cod sursa (job #2741215) | Cod sursa (job #1438768)
#include <iostream>
#include <fstream>
#include <vector>
std::vector <int> Array;
int n, m;
int search(int nod)
{
if (nod != Array[nod])
{
return Array[nod] = search(Array[nod]);
}
else
{
return nod;
}
}
void Join(int x, int y)
{
x = search(x);
y = search(y);
Array[x] = y;
}
void rez()
{
std::ifstream f("disjoint.in");
std::ofstream g("disjoint.out");
f >> n >> m;
int intr, x, y;
Array.resize(n + 1);
for (unsigned int i = 0; i < Array.size(); i++)
{
Array[i] = i;
}
for (int i = 0; i < m; i++)
{
f >> intr >> x >> y;
if (intr == 1)
{
Join(x, y);
}
else
{
if (search(x) == search(y))
{
g << "DA\n";
}
else
{
g << "NU\n";
}
}
}
}
int main()
{
rez();
return 0;
}