Pagini recente » Cod sursa (job #2201469) | Cod sursa (job #355549) | Cod sursa (job #301898) | Iirina | Cod sursa (job #2783205)
#include <iostream>
#include <fstream>
using namespace std;
int h[100005], tata[100005];
int frad(int x)
{
while(x!=tata[x]) x=tata[x];
return x;
}
void unire(int rx, int ry)
{
if(h[rx]>h[ry]) tata[ry]=rx;
else if(h[rx]<h[ry]) tata[rx]=ry;
else
{
tata[rx]=ry;
h[ry]++;
}
}
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n, m, cod, a, b;
cin>>n>>m;
for(int i=1; i<=n; i++)
{
tata[i]=i;
}
for(int i=0; i<m; i++)
{
cin>>cod>>a>>b;
if(cod==2)
{
if(frad(a)==frad(b)) cout<<"DA"<<endl;
else cout<<"NU"<<endl;
}
else unire(frad(a), frad(b));
}
return 0;
}