Pagini recente » Cod sursa (job #1721994) | Cod sursa (job #3287337) | Cod sursa (job #1529642) | Cod sursa (job #2383395) | Cod sursa (job #2542433)
#include<fstream>
#include<vector>
#define NMAX 100005
//in-out
std::ifstream f("disjoint.in");
std::ofstream g("disjoint.out");
//data
std::vector<int> father(NMAX);
int n, m;
//readData
void readData(){
f >> n >> m;
}
int find_(int x){
if(x == father[x]){
return x;
}
father[x] = find_(father[x]);
return father[x];
}
void unite_(int x, int y){
father[find_(x)] = find_(y);
}
void solve(){
int x, y, op;
for(int i = 1; i<=n; i++){
father[i] = i;
}
for(int i = 0; i<m; i++){
f >> op >> x >> y;
if(op == 1){
unite_(x, y);
}else{
if(find_(x) == find_(y)){
g << "DA\n";
}else{
g << "NU\n";
}
}
}
}
//
int main(){
readData();
solve();
return 0;
}