Pagini recente » Cod sursa (job #2706210) | Cod sursa (job #2934902) | Cod sursa (job #33447) | Cod sursa (job #664105) | Cod sursa (job #2413586)
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n,m,t[100005];
bool check(int x,int y){
while(t[x]!=x)
x=t[x];
while(t[y]!=y)
y=t[y];
if(x!=y)
return 0;
return 1;
}
void reuniune(int x,int y){
while(t[x]!=x)
x=t[x];
while(t[y]!=y)
y=t[y];
t[y]=x;
}
int main(){
cin>>n>>m;
int c,x,y;
for(int i=1;i<=n;i++)
t[i]=i;
for(int i=1;i<=m;i++){
cin>>c>>x>>y;
if(c==1)
reuniune(x,y);
if(c==2){
if(check(x,y))
cout<<"DA"<<'\n';
else
cout<<"NU"<<'\n';
}
}
return 0;
}