Pagini recente » Cod sursa (job #883106) | Cod sursa (job #1046249) | Cod sursa (job #1531673) | Sport2 | Cod sursa (job #2940018)
#include <bits/stdc++.h>
using namespace std;
#define cin fin
#define cout fout
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
vector<int> fat, sz;
int getFat(int x){
if(x==fat[x]) return x;
return fat[x]=getFat(fat[x]);
}
void join(int a, int b){
a=getFat(a), b=getFat(b);
//if(a==b) return;
if(sz[a]<sz[b]) swap(a, b);
fat[b]=a;
sz[a]+=sz[b];
}
int main(){
int n, q;
cin>>n>>q;
fat.resize(n+1);
sz.resize(n+1);
for(int i=1;i<=n;++i) fat[i]=i, sz[i]=1;
for(int i=1;i<=q;++i){
int t;
cin>>t;
if(t==1){
int a, b;
cin>>a>>b;
join(a, b);
}
else{
int a, b;
cin>>a>>b;
if(getFat(a)==getFat(b)) cout<<"NU\n";
else cout<<"DA\n";
}
}
}