Pagini recente » Cod sursa (job #2688276) | Cod sursa (job #2915307) | Cod sursa (job #360251) | Cod sursa (job #2946222) | Cod sursa (job #3139657)
#include <bits/stdc++.h>
#define for_auto(v) for(vector<int>::iterator it = v.begin(); it != v.end(); it++)
#define for_rauto(v) for(vector<int>::reverse_iterator it = v.rbegin(); it != v.rend(); it++)
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, q, i, m[100002];
int op, x, y;
static inline int gaseste(int p) {
if(m[p] == p) return p;
else {
m[p] = gaseste(m[p]);
return m[p];
}
}
static inline void uneste(int x, int y) {
int a = gaseste(x);
int b = gaseste(y);
m[a] = b;
}
int main() {
fin >> n >> q;
for(i = 1; i <= n; i++) m[i] = i;
while(q--) {
fin >> op >> x >> y;
if(op == 1) uneste(x, y);
else {
if(gaseste(x) == gaseste(y)) fout << "DA\n";
else fout << "NU\n";
}
}
return 0;
}