Pagini recente » Profil ionumrginean | Rating Maria Lungu (marialungu) | Rating Papaya Albastru (Pavelutz) | Cod sursa (job #2945696) | Cod sursa (job #2713748)
///#include <iostream>
#include <fstream>
const int SIZE = 1e5+10;
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n, m;
int cer, a, b;
int v[SIZE]{-1};
int getRoot(int node)
{
int nav=node;
while(v[nav]>0) nav=v[nav];
return nav;
}
void unite(int a, int b)
{
int ra=getRoot(a), rb=getRoot(b);
if(v[ra]>v[rb]) swap(ra, rb);
v[ra]+=v[rb], v[rb]=ra;
}
bool sameRoot(int a, int b)
{
return (getRoot(a)==getRoot(b));
}
int main()
{
cin>>n>>m;
for(int i=1; i<=m; i++)
{
cin>>cer>>a>>b;
if(cer==1) unite(a, b);
else if(sameRoot(a, b)) cout<<"DA\n";
else cout<<"NU\n";
}
return 0;
}