Pagini recente » Profil jijel113 | Cod sursa (job #1605321) | Cod sursa (job #1463728) | Cod sursa (job #542400) | Cod sursa (job #2839409)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int dim=100009;
int n,m;
int parent[dim],sz[dim];
int find_set(int x){
if(x==parent[x]){
return x;
}
return parent[x]=find_set(parent[x]);
}
void union_sets(int x,int y){
int a=find_set(x);
int b=find_set(y);
if(a!=b){
if(sz[a]<sz[b]){
swap(a,b);
}
parent[b]=a;
sz[a]+=sz[b];
}
}
signed main(){
fin>>n>>m;
for(int i=1;i<=n;i++){
parent[i]=i;
sz[i]=1;
}
while(m--){
int op,a,b;
fin>>op>>a>>b;
if(op==1){
union_sets(a,b);
}
else{
fout<<( find_set(a)==find_set(b) ? "DA" :"NU")<<'\n';
}
}
}