Pagini recente » Cod sursa (job #173707) | Cod sursa (job #1200866) | Cod sursa (job #2071708) | Cod sursa (job #129817) | Cod sursa (job #2279552)
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int T[100001];
int sef(int x){
if(x!=T[x]){
return sef(T[x]);
}
else
return x;
}
struct operatii{
int op;
int n1;
int n2;
}o[100001];
int main()
{
int m,n,i;
cin>>m>>n;
for(i=1;i<=m;i++)
T[i]=i;
for(i=1;i<=n;i++)
cin>>o[i].op>>o[i].n1>>o[i].n2;
for(i=1;i<=n;i++){
if(o[i].op==1){
T[sef(o[i].n2)]=sef(o[i].n1);
}
if(o[i].op==2){
if(sef(T[o[i].n1])==sef(T[o[i].n2])){
cout<<"DA\n";
}
else{
cout<<"NU\n";
}
}
}
return 0;
}