Pagini recente » Cod sursa (job #2413635) | Cod sursa (job #841146) | Cod sursa (job #1336637) | Cod sursa (job #857943) | Cod sursa (job #3041063)
#include <fstream>
#include <vector>
#define NMAX 100005
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int cod, x, y;
int t[NMAX];
int i, j;
int radacina(int);
void unire(int, int);
int main()
{
fin >>n>>m;
for (i = 1; i <= m; ++i)
{
fin >>cod>>x>>y;
if (cod == 1) unire(x, y);
else
fout <<(radacina(x) == radacina(y)? "DA": "NU")<<'\n';
}
fout.close();
return 0;
}
int radacina(int vf)
{
if (!t[vf]) return vf;
return radacina(t[vf]);
}
void unire(int x, int y)
{
int r1 = radacina(x), r2 = radacina(y);
if (r1 != r2)
t[r2] = r1;
}