Pagini recente » Cod sursa (job #1960521) | Cod sursa (job #1455857) | Cod sursa (job #1832713) | Cod sursa (job #738443) | Cod sursa (job #2946934)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> parents;
int find_parent(int node){
if(!parents[node]){
return node;
}else{
return parents[node] = find_parent(parents[node]);
}
}
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int nodes, ops, op;
fin>>nodes>>ops;
parents.resize(nodes+1, 0);
while(ops){
ops--;
fin>>op;
int node1, node2;
fin>>node1>>node2;
int a = find_parent(node1);
int b = find_parent(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;
}