Pagini recente » Cod sursa (job #3164076) | Cod sursa (job #2564579) | Cod sursa (job #143065) | Cod sursa (job #163890) | Cod sursa (job #3193128)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, q, tata[100010], T, x, y;
int Find(int x) {
int r = x;
while(tata[r] != r) r = tata[r];
while(tata[x] != r) {
int tmp = tata[x];
tata[x] = r;
x = tmp;
}
return r;
}
void Unite(int x, int y) {
x = Find(x);
y = Find(y);
tata[y] = x;
}
int main()
{
fin >> n >> q;
for(int i=1; i<=n; i++) tata[i] = i;
for(int i=1; i<=q; i++) {
fin >> T >> x >> y;
if(T == 1 && Find(x) != Find(y)) Unite(x, y);
else {
if(Find(x) == Find(y)) fout << "DA" << '\n';
else fout << "NU" << '\n';
}
}
return 0;
}