Pagini recente » Cod sursa (job #2593388) | Cod sursa (job #864658) | Cod sursa (job #27758) | Cod sursa (job #2621665) | Cod sursa (job #2371065)
#include <fstream>
using namespace std;
ifstream cin ("disjoint.in");
ofstream cout ("disjoint.out");
int sef[100005];
int sefsuprem(int x)
{
if (sef[x]==x)
return x;
else
return sef[x]=sefsuprem(sef[x]);
}
int unire(int x,int y)
{
int sefsx=sefsuprem(x),sefsy=sefsuprem(y);
sef[sefsx]=sefsy;
}
int main()
{
int n,m,i,t,a,b;
cin>>n>>m;
for (i=1;i<=n;i++)
sef[i]=i;
for (i=1;i<=m;i++)
{
cin>>t>>a>>b;
if (t==1)
unire(a,b);
else
{
if (sefsuprem(a)==sefsuprem(b))
cout<<"DA";
else
cout<<"NU";
cout<<endl;
}
}
return 0;
}