Pagini recente » Cod sursa (job #427504) | Cod sursa (job #724035) | Cod sursa (job #1438777) | Cod sursa (job #3193827) | Cod sursa (job #1365685)
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int maxn = 100005;
int n, m, father[maxn];
inline int _find(int x) {
if(father[x] != x)
father[x] = _find(father[x]);
return father[x];
}
inline void unite(int x, int y) {
x = _find(x);
y = _find(y);
assert(x != y);
father[x] = y;
}
int main() {
fin >> n >> m;
for(int i = 0 ; i < n ; ++ i)
father[i] = i;
for(int i = 1 ; i <= m ; ++ i) {
int op, x, y;
fin >> op >> x >> y;
-- x; -- y;
if(op == 1)
unite(x, y);
else
if(_find(x) == _find(y))
fout << "DA\n";
else
fout << "NU\n";
}
}