Pagini recente » Cod sursa (job #900370) | Cod sursa (job #1765869) | Cod sursa (job #2226950) | Cod sursa (job #1409909) | Cod sursa (job #2392379)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
std::vector <int> g[MAXN];
int father[MAXN];
int sizee[MAXN];
void findd(int x){
if(father[x] == x) return;
findd(father[x]);
father[x] = father[father[x]];
///sizee[father[x]] ++;
}
void unionn(int x, int y){
int a = father[x], b = father[y];
if(sizee[a] > sizee[b]) swap(a, b);
sizee[b] += sizee[a];
father[a] = b;
}
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int main(){
int n, m;
fin >> n >> m;
for(int i = 1; i <= n; ++i) father[i] = i;
for(int i = 1; i <= m; ++i){
int type, a, b;
fin >> type >> a >> b;
if(type == 1){
unionn(a, b);
findd(a);
findd(b);
}
else{
if(father[a] == father[b]) fout << "DA";
else fout << "NU";
fout << '\n';
}
}
return 0;
}