Pagini recente » Cod sursa (job #1398988) | Cod sursa (job #1507170) | Cod sursa (job #992351) | Cod sursa (job #2528635) | Cod sursa (job #1242251)
#include <fstream>
#include <cstring>
#define MAXN 100001
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int s[MAXN];
int main() {
int op, a, b;
fin >> n >> m;
memset(s, -1, sizeof(s));
for (int i = 0; i < m; ++i) {
fin >> op >> a >> b;
int aux_a = a;
while (s[a] > 0) {
a = s[a];
}
int aux_b = b;
while (s[b] > 0) {
b = s[b];
}
if (op == 1) {
//reuniune
if (s[a] < s[b]) {
s[a] += s[b];
s[b] = a;
if (aux_a != a) {
s[aux_a] = s[aux_b] = a;
}
} else {
s[b] += s[a];
s[a] = b;
if (aux_b != b) {
s[aux_a] = s[aux_b] = b;
}
}
} else {
if (a == b) {
fout << "DA" << endl;
} else {
fout << "NU" << endl;
}
}
}
return 0;
}