Pagini recente » Cod sursa (job #1420626) | Cod sursa (job #2293191) | Cod sursa (job #788287) | Cod sursa (job #2753832) | Cod sursa (job #2721937)
#include <bits/stdc++.h>
#define newline '\n'
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
///***********************
const int NMAX = 1e5 + 3;
int daddy[NMAX], n, m;
int findRoot(int start) {
int root = start, aux;
while (root != daddy[root])
root = daddy[root];
while (start != root) {
aux = daddy[start];
daddy[start] = root;
start = aux;
}
return root;
}
int main() {
fin >> n >> m;
iota(daddy, daddy + n + 1, 0);
for (int i = 0; i < m; i++) {
int x, y, op;
fin >> op >> x >> y;
int root1 = findRoot(x);
int root2 = findRoot(y);
if (op == 1 && root1 != root2)
daddy[root1] = root2;
else {
if (root1 == root2)
fout << "DA" << newline;
else
fout << "NU" << newline;
}
}
return 0;
}