Pagini recente » Cod sursa (job #496690) | Cod sursa (job #1872304) | Cod sursa (job #3270715) | Cod sursa (job #3280530) | Cod sursa (job #3306186)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int Nmax = 100005;
int n, m;
int F[Nmax];
int root(int nr){
if(F[nr] < 0){
return nr;
}
int origin = root(F[nr]);
F[nr] = origin;
return origin;
}
void glue(int x, int y){
int rx = root(x);
int ry = root(y);
if(rx == ry){
return;
}
if(F[rx] > F[ry]){
swap(F[rx], F[ry]);
}
F[ry] += F[rx];
F[rx] = ry;
}
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
fin >> n >> m;
for(int i = 1; i <= n; i++){
F[i] = -1;
}
while(m--){
int cod, x, y;
fin >> cod >> x >> y;
if(cod == 1){
glue(x, y);
}
else if(cod == 2){
if(root(x) == root(y)){
fout << "DA" << endl;
}
else{
fout << "NU" << endl;
}
}
}
return 0;
}