Pagini recente » Cod sursa (job #1739644) | Cod sursa (job #3138173) | Cod sursa (job #2142686) | Cod sursa (job #1125062) | Cod sursa (job #2859021)
#include <fstream>
using namespace std;
ifstream f("disjoint.in"); ofstream g("disjoint.out");
int n,m,T[100001];
int Radacina(int x)
{ int R,y;
for(R=x;T[R]!=R;R=T[R]);
for(;T[x]!=x;) {y=T[x]; T[x]=R; x=y;}
return R;
}
void Unire(int k, int p)
{ T[k]=p;}
int main()
{ cin>>n>>m;
for(int i=1;i<=n;i++) T[i]=i;
while(m--)
{ int x,y,op;
cin>>op>>x>>y;
if(op==1) Unire(Radacina(x),Radacina(y));
else
if(Radacina(x)==Radacina(y)) cout<<"DA\n";
else cout<<"NU\n";
}
g.close(); f.close(); return 0;
}