Pagini recente » Cod sursa (job #2605031) | Cod sursa (job #1706324) | Cod sursa (job #795257) | Cod sursa (job #1769243) | Cod sursa (job #2679060)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
int n , m;
int t[100005];
void Union (int x , int y)
{
t[x]=y;
}
int Find(int x)
{
int rad=x;
while(t[rad]!=0)
{
rad=t[rad];
}
while(t[x]!=0)
{
int aux=t[x];
t[x]=rad;
x=aux;
}
return rad;
}
int main()
{
f>>n>>m;
for(int i=1;i<=m;++i)
{
int op,a,b;
f>>op>>a>>b;
if(op==1)
{
int r1=Find(a);
int r2=Find(b);
if(r1!=r2)
Union(r1,r2);
}
else
g << ((Find(a) == Find(b))? "DA":"NU")<<"\n";
}
return 0;
}