Pagini recente » Cod sursa (job #3322727) | Cod sursa (job #386805) | Cod sursa (job #900222) | Cod sursa (job #3323519) | Cod sursa (job #3337506)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5;
int n,q;
int papa[NMAX+1];
struct DSU{
void init()
{
for(int i = 1; i <= n; i++)
papa[i] = i;
}
int find_parent(int x)
{
if(x != papa[x])
return papa[x] = find_parent(papa[x]);
else
return x;
}
void unite(int st, int dr)
{
int p_x = find_parent(st);
int p_y = find_parent(dr);
if(p_x != p_y)
papa[p_x] = p_y;
}
};
int main()
{
cin >> n >> q;
DSU dsu;
dsu.init();
while(q--)
{
int c,st,dr;
cin >> c >> st >> dr;
if(c == 1)
dsu.unite(st,dr);
else
cout << ((dsu.find_parent(st) == dsu.find_parent(dr)) ? "DA" : "NU") << '\n';
}
return 0;
}