Pagini recente » Cod sursa (job #1709515) | Cod sursa (job #1337518) | Cod sursa (job #1344058) | Cod sursa (job #2826509) | Cod sursa (job #1896045)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int NM = 100010;
int T[NM];
int N, O, i, x, y, type;
int Find(int S) {
if (T[S] != S)
T[S] = Find(T[S]);
return T[S];
}
void Join(int D1, int D2) {
D1 = Find(D1);
D2 = Find(D2);
T[D1] = D2;
}
void Check(int x, int y) {
out << ((Find(x) == Find(y)) ? "DA\n" : "NU\n");
}
int main()
{
in >> N >> O;
for (i = 1; i <= N; ++i) {
T[i] = i;
}
for (i = 1; i <= O; ++i) {
in >> type >> x >> y;
(type == 1) ? Join(x, y) : Check(x, y);
}
return 0;
}