Pagini recente » Cod sursa (job #727182) | Cod sursa (job #1919173) | Cod sursa (job #2365423) | Cod sursa (job #2660161) | Cod sursa (job #3003616)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int n,m,t[100001], rang[100001];
int rep(int nod){
int aux;
if (t[nod]!=nod) {
aux=rep(t[nod]);
t[nod]=aux;
}
return t[nod];
}
int uniune(int x,int y){
if (rang[x]<=rang[y]) {
t[rep(x)]=rep(y);
rang[x]++;
}
else {
t[rep(x)]=rep(y);
rang[y]++;
}
}
int main(){
int q, x, y;
fin >> n >> m;
for (int i=1;i<=n;i++) t[i]=i;
for (int i=1;i<=m;i++){
fin >> q >> x >> y;
if (q==1) {
uniune(x,y);
}
if (q==2){
if (rep(x)==rep(y)) fout << "DA\n";
else fout << "NU\n";
}
}
}