Pagini recente » Cod sursa (job #142699) | Cod sursa (job #443667) | Cod sursa (job #1354786) | Cod sursa (job #3228200) | Cod sursa (job #2952122)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
vector<vector<int>>galeata;
vector<int>nrGaleata;
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int n,m;
cin>>n>>m;
galeata.resize(n+1);
nrGaleata.resize(n+1);
for(int i=1;i<=n;i++){
galeata[i].push_back(i);
nrGaleata[i]=i;
}
for(int i=1;i<=m;i++){
int intrebare,a,b;
cin>>intrebare>>a>>b;
if(intrebare==1){
int gA=nrGaleata[a];
int gB=nrGaleata[b];
if(galeata[gA].size()>galeata[gB].size()){
for(auto&element:galeata[gB]){
galeata[gA].push_back(element);
nrGaleata[element]=gA;
}
galeata[gB].clear();
}else{
for(auto&element:galeata[gA]){
galeata[gB].push_back(element);
nrGaleata[element]=gB;
}
galeata[gA].clear();
}
}else{
int gA=nrGaleata[a];
int gB=nrGaleata[b];
if(gA==gB){
cout<<"Da"<<'\n';
}else{
cout<<"Nu"<<'\n';
}
}
}
return 0;
}