Pagini recente » Cod sursa (job #2384272) | Cod sursa (job #1387829) | Cod sursa (job #2400679) | Cod sursa (job #2856900) | Cod sursa (job #3195900)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m;
int tata[101];
void init0(){
for(int i=1;i<=n;i++)
tata[i]=-1;
}
int find_root(int node){
if(tata[node]<0)
return node;
int root=find_root(tata[node]);
tata[node]=root;
return root;
}
void roots(int x,int y){
int r_y=find_root(x);
int r_z=find_root(y);
if(r_y==r_z)
return;
if(r_y<r_z)
swap(r_y,r_z);
tata[r_z]+=tata[r_y];
tata[r_y]=r_z;
}
int main() {
fin>>n>>m;
int x,y,z;
init0();
for(int i=1;i<=m;i++){
fin>>x>>y>>z;
if(x==1){
roots(y,z);
}
else{
if(find_root(y)==find_root(z))
fout<<"DA";
else
fout<<"NU";
fout<<endl;
}
}
return 0;
}