Pagini recente » Borderou de evaluare (job #3007275) | Cod sursa (job #245262) | Statistici Ilinca M (mililinca) | Cod sursa (job #2196191) | Cod sursa (job #2631180)
#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 (daddy[root])
root = daddy[root];
while (daddy[start]) {
aux = daddy[start];
daddy[start] = root;
start = aux;
}
return root;
}
int main() {
fin >> n >> m;
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;
}