Pagini recente » Cod sursa (job #248686) | Cod sursa (job #2257530) | Cod sursa (job #2032847) | Cod sursa (job #512770) | Cod sursa (job #2946738)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int find_parent(vector<int>& parents, int node){
if(!parents[node]){
return node;
}else{
return find_parent(parents, parents[node]);
}
}
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int nodes, ops, op;
fin>>nodes>>ops;
vector<int> parents(nodes+1, 0);
while(ops){
ops--;
fin>>op;
int node1, node2;
fin>>node1>>node2;
int a = find_parent(parents, node1);
int b = find_parent(parents, node2);
switch(op){
case 1:
if(a != b){
parents[a] = b;
}
break;
case 2:
if(a == b){
fout<<"DA"<<endl;
}else{
fout<<"NU"<<endl;
}
break;
default:
fout<<"Error";
}
}
fin.close();
fout.close();
return 0;
}