Pagini recente » Cod sursa (job #2629166) | Cod sursa (job #2881656) | Cod sursa (job #2580818) | Cod sursa (job #900361) | Cod sursa (job #2031229)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int r[100005],t[100005],n,i,j,m,op;
int FindBigDaddy(int x)
{while(t[x])x=t[x];
return x;
}
void UniteTheDaddies(int x,int y)
{if(r[x]<r[y]){t[x]=y;}
else if(r[x]==r[y]){t[x]=y;r[y]++;}
else t[y]=x;
}
int main()
{int x,y;
fin>>n>>m;
for(i=1;i<=m;i++)
{fin>>op>>x>>y;
if(op==1)UniteTheDaddies(FindBigDaddy(x),FindBigDaddy(y));
if(op==2&&FindBigDaddy(x)==FindBigDaddy(y))fout<<"DA\n";
else if(op==2)fout<<"NU\n";
}
}