Pagini recente » Cod sursa (job #3331304) | Cod sursa (job #953231) | Cod sursa (job #638963) | Cod sursa (job #3315054) | Cod sursa (job #3347141)
#include <bits/stdc++.h>
using namespace std;
const int Nmax=1e5+5;
struct DSU {
int dad[Nmax];
void build(int n) {
for (int i=1; i<=n; ++i) dad[i]=i;
}
int find(int x) {
if (x==dad[x]) return x;
return dad[x]=find(dad[x]);
}
void merge(int x, int y) {
dad[find(x)]=find(y);
}
} dsu;
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n,m;
cin>>n>>m;
dsu.build(n);
while (m--) {
int type,x,y;
cin>>type>>x>>y;
if (type==1) dsu.merge(x,y);
else cout<<(dsu.find(x)==dsu.find(y) ? "DA":"NU")<<'\n';
}
cin.close();
cout.close();
return 0;
}