Pagini recente » Cod sursa (job #2127701) | Cod sursa (job #2651110)
#include <fstream>
using namespace std;
int t[100005],h[100005];
int ft(int n)
{
if(t[n]==n)
return n;
t[n]=ft(t[n]);
return t[n];
}
void connect(int x,int y)
{
int n,m;
n=ft(x);
m=ft(y);
if(h[n]>h[m])
t[m]=n;
if(h[n]<h[m])
t[n]=m;
if(h[n]==h[m])
{
t[m]=n;
h[n]++;
}
}
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n,m,cd,x,y;
cin >> n >> m;
for(int i=1;i<=n;i++)
t[i]=i;
for(int i=0;i<m;i++)
{
cin >> cd >> x >> y;
if(cd==1)
{
connect(x,y);
}
else
{
if(ft(x)==ft(y))
cout << "DA" << '\n';
else
cout << "NU" << '\n';
}
}
return 0;
}