Pagini recente » Cod sursa (job #3261720) | Cod sursa (job #1562704) | Cod sursa (job #1356387) | Cod sursa (job #1212488) | Cod sursa (job #3332960)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int n, m, cod, x, y, t[100001], rankkk[100001];
int faind(int x) {
if (t[x] == x)
return x;
return t[x] = faind(t[x]);
}
void margi (int x, int y) {
x = faind(x);
y = faind(y);
if (x == y) return;
if (rankkk[x] < rankkk[y]) swap(x,y);
t[y] = x;
if (rankkk[x] == rankkk[y]) rankkk[x]++;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; ++i) t[i] = i, rankkk[i] = 0;
for (int i = 1; i <= m; ++i) {
fin >> cod >> x >> y;
if (cod == 1) {
margi(x, y);
}
else {
if (faind(x) == faind(y)) fout << "DA" << endl;
else fout << "NU" << endl;
}
}
return 0;
}