Pagini recente » Cod sursa (job #2589317) | Cod sursa (job #1780316) | Cod sursa (job #1072065) | Cod sursa (job #1793510) | Cod sursa (job #1750766)
#include<bits/stdc++.h>
using namespace std;
#define in f
#define out cout
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
int n;
int m;
int x;
int y;
int code;
int father[100010];
int rang[100010];
int uni (int x, int y) {
if(father[y] == 0) {
if(rang[x] < rang[y]) {
return uni(y, x);
}
father[y] = x;
rang[x]++;
} else {
uni(x, father[y]);
}
}
int query (int x, int y) {
if((father[x] == 0)&&(father[y] == 0)) {
if(x == y) {
out << "DA" << endl;
} else {
out << "NU" << endl;
}
} else {
if(father[y] != 0) {
query(x ,father[y]);
} else {
query(father[x], y);
}
}
}
int main() {
in >> n;
in >> m;
for(int i = 1; i <= m; i++) {
in >> code;
in >> x;
in >> y;
if(code == 1) {
uni(x, y);
}
if(code == 2) {
query(x, y);
}
}
return 0;
}