Pagini recente » Cod sursa (job #1946435) | Cod sursa (job #301215) | Cod sursa (job #740483) | Cod sursa (job #1164240) | Cod sursa (job #3145157)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int N_MAX = 1e5;
const int UNITE = 1;
int parent[N_MAX];
void init(int n){
for(int i = 0; i < n; ++i)
parent[i] = i;
}
int find(int x){
if(x == parent[x])
return x;
return parent[x] = find(parent[x]);
}
void unite(int x, int y){
x = find(x);
y = find(y);
parent[y] = x;
}
int main(){
int n, queries, type, x, y;
fin >> n >> queries;
init(n);
for(int i = 0; i < queries; ++i){
fin >> type >> x >> y;
--x;
--y;
if(type == UNITE)
unite(x, y);
else{
if(find(x) == find(y))
fout << "DA\n";
else
fout << "NU\n";
}
}
fin.close();
fout.close();
return 0;
}