Pagini recente » Cod sursa (job #468261) | Cod sursa (job #901381) | Cod sursa (job #2872587) | Cod sursa (job #551803) | Cod sursa (job #2701001)
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout ("disjoint.out");
int n, m, tip, x, y;
int sef[100001];
int sef_suprem (int z)
{
if(sef[z]==z) return z;
return sef[z]= sef_suprem(sef[z]);
}
int unire( int x, int y)
{
int a,b;
a=sef_suprem(x);
b=sef_suprem(y);
sef[a]=b;
}
int main()
{
cin>>n >>m;
for(int i=1; i<=n; i++)
sef[i]=i;
for(int i=1; i<=m; i++)
{
cin>>tip>>x>>y;
if(tip==1)
unire(x, y);
else
{
if (sef_suprem(x)==sef_suprem(y)) cout<<"DA";
else cout<<"NU";
cout<<'\n';
}
}
return 0;
}