Pagini recente » Cod sursa (job #753188) | Cod sursa (job #429430) | Cod sursa (job #2467394) | Cod sursa (job #2948220) | Cod sursa (job #2936272)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e5;
int parent[maxn]={0},rang[maxn]={0};
int find(int x) {
if (parent[x]!=0) {
parent[x]=find(parent[x]);
return parent[x];
}
return x;
}
void Union(int x,int y) {
int r1=find(x);
int r2=find(y);
if (rang[r1]>rang[r2]) {
parent[r2]=r1;
return;
}
if (rang[r2]>rang[r1]) {
parent[r1]=r2;
return;
}
parent[r2]=r1;
rang[r1]+=1;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m;
cin >> n >> m;
for(int i=1;i<=m;i++){
int a,x,y;
fin >> a >> x >> y;
if(a==1) merge(x,y);
if(a==2){
if(find(x)==find(y)){
fout << "DA" << endl;
}
else{
fout << "NU" << endl;
}
}
}
return 0;
}