Pagini recente » Cod sursa (job #2484193) | Cod sursa (job #831361) | Cod sursa (job #1541467) | Cod sursa (job #1702358) | Cod sursa (job #2701407)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int NMAX = 100005;
int father[NMAX];
int rang[NMAX];
int n, m, i, x, y, condition;
int find_root(int x) {
if (father[x] == 0)
return x;
else {
int r = find_root(father[x]);
father[x] = r;
return r;
}
}
int link_nodes(int x, int y) {
if (rang[x] > rang[x])
father[y] = x;
else
father[x] = y;
if (rang[x] == rang[y])
rang[y]++;
}
int main() {
fin >> n >> m;
while (m--) {
fin >> condition >> x >> y;
if (condition == 1)
link_nodes(find_root(x), find_root(y));
else {
if (find_root(x) == find_root(y))
fout << "DA" << endl;
else
fout << "NU" << endl;
}
}
}