Pagini recente » Cod sursa (job #2270904) | Cod sursa (job #2100478) | Cod sursa (job #543579) | Cod sursa (job #1682124) | Cod sursa (job #2237167)
#include <bits/stdc++.h>
#define all(cont) cont.begin(), cont.end()
#define pb push_back
#define fi first
#define se second
using namespace std;
typedef pair <int, int> pii;
typedef vector <int> vi;
typedef long long ll;
typedef unsigned long long ull;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
const int NMAX = 1e5 +5;
int dad[NMAX];
int n, m;
int getDad (int x) {
if (dad[x] == x) return x;
dad[x] = getDad (dad[x]);
return dad[x];
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
#ifdef LOCAL_DEFINE
freopen (".in", "r", stdin);
#endif
f >> n >> m;
for (int i = 1; i <= n; ++i) dad[i] = i;
for (int i = 0; i < m; ++i) {
int cod, x, y;
f >> cod >> x >> y;
int dad1 = getDad (x);
int dad2 = getDad (y);
if (cod == 1) {
dad[dad2] = dad1;
} else {
g << ((dad[x] == dad[y]) ? ("DA\n") : ("NU\n"));
}
}
f.close();
g.close();
return 0;
}