Pagini recente » Cod sursa (job #3363712) | Statistici Vasilescu Costin-Tiberiu (vasilescutiberiu121) | Cod sursa (job #3361746) | Cod sursa (job #3361753) | Cod sursa (job #3363423)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n , m , parent[100001] , sz[100001];
inline int find(int x){
if(parent[x] != x) parent[x] = find(parent[x]);
return parent[x];
}
inline void uniune(int a , int b){
a = find(a);
b = find(b);
if(a != b){
if(sz[a] < sz[b]) swap(a , b);
parent[b] = a;
sz[a] += sz[b];
}
}
int main(){
fin >> n >> m;
for(int i = 1 ; i <= n ; i++) parent[i] = i , sz[i] = 1;
for(int i = 1 ; i <= m ; i++){
int tip , x , y;
fin >> tip >> x >> y;
if(tip == 1) uniune(x , y);
else{
if(find(x) == find(y)) fout << "DA\n";
else fout << "NU\n";
}
}
}