Pagini recente » Cod sursa (job #1884300) | Cod sursa (job #1329285) | Cod sursa (job #2262775) | Cod sursa (job #1702657) | Cod sursa (job #1242257)
#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 rad, aux_a, aux_b, aux;
aux_a = a;
while (s[a] > 0) {
a = s[a];
}
rad = a;
a = aux_a;
while (s[a] > 0) {
aux = a;
a = s[a];
s[aux] = rad;
}
aux_b = b;
while (s[b] > 0) {
b = s[b];
}
rad = b;
while (s[b] > 0) {
aux = b;
b = s[b];
s[aux] = rad;
}
if (op == 1) {
//reuniune
if (s[a] < s[b]) {
s[a] += s[b];
s[b] = a;
} else {
s[b] += s[a];
s[a] = b;
}
} else {
if (a == b) {
fout << "DA" << endl;
} else {
fout << "NU" << endl;
}
}
}
return 0;
}