Pagini recente » Cod sursa (job #2612146) | Cod sursa (job #668454) | Cod sursa (job #2556536) | Cod sursa (job #861561) | Cod sursa (job #3197075)
#include <bits/stdc++.h>
using namespace std;
int n, m, T[100100];
int find(int t){
if(T[t] == t){
return T[t];
}
return find(T[t]);
}
void unit(int a, int b){
if(T[a] == a && T[b] == b){
T[a] = T[b];
} else if(T[b] == b){
unit(T[a], b);
T[a] = T[b];
} else {
unit(a, T[b]);
T[a] = T[b];
}
}
int main(){
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> m;
for(int i=1; i<=n; i++){
T[i] = i;
}
int k, a, b;
for(int i=1; i<=m; i++){
cin >> k >> a >> b;
if(k==1 && find(a) != find(b)){
unit(a, b);
} else {
cout << (find(T[a]) == find(T[b]) ? "DA" : "NU") << endl;
}
}
}