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