Pagini recente » Cod sursa (job #813389) | Cod sursa (job #2482849) | Cod sursa (job #3335300) | Cod sursa (job #3349105) | Cod sursa (job #2304043)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,T,i,j,op,x,y,rx,ry,t[100001];
int rad(int x){
while(t[x]>0){
x=t[x];
}
return x;
}
int update(int x, int rad){
int y;
while(x!=rad){
y=t[x];
t[x]=rad;
x=y;
}
}
int main(){
fin>>n;
for(i=1;i<=n;i++)
t[i]=-1;
for(fin>>T;T;T--){
fin>>op>>x>>y;
rx=rad(x);
update(x,rx);
ry=rad(y);
update(y,ry);
if(op==2){
if(rx==ry)
fout<<"DA\n";
else
fout<<"NU\n";
}else{
if(rx!=ry){
if(t[rx]>t[ry]){
t[rx]+=t[ry];
t[ry]=rx;
}else{
t[ry]+=t[rx];
t[rx]=ry;
}
}
}
}
return 0;
}