Cod sursa(job #3003985)
Utilizator | Marasoiu Cosmin Cosmincreato | Data | 16 martie 2023 07:33:24 |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
using namespace std;
const int NMAX = 100000;
int T[NMAX + 1];
int Find(int i)
{
if(T[i] == 0)
return i;
return T[i] = Find(T[i]);
}
inline void Union(int cx, int cy)
{
T[cy] = cx;
}
int main()
{
int N, M, op, x, y, cx, cy;
cin >> N >> M;
//
while(M--)
{
cin >> op >> x >> y;
cx = Find(x);
cy = Find(y);
if(op == 1)
{
if(cx != cy)
Union(cx, cy);
}
else
{
if(cx == cy)
cout << "DA\n";
else
cout << "NU\n";
}
}
return 0;
}