Pagini recente » Cod sursa (job #2378256) | Cod sursa (job #2845125) | Cod sursa (job #392223) | Cod sursa (job #113709) | Cod sursa (job #2568717)
#include <fstream>
#define Nmax 100011
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,ap[Nmax],l[Nmax];
int stramos(int x)
{
if (ap[x]==x)
return x;
ap[x]=stramos(ap[x]);
return ap[x];
}
int main()
{
int p,i,a,b;
fin>>n>>m;
for (i=1;i<=n;i++){
ap[i]=i;
l[i]=1;
}
for (i=1;i<=m;i++)
{
fin>>p>>a>>b;
if (p==2)
{
if (stramos(a)==stramos(b))
fout<<"DA";
else
fout<<"NU";
fout<<"\n";
}
else
{
int a1=stramos(a);
int b1=stramos(b);
if (l[a1]>l[b1]){
l[a1]+=l[b1];
ap[b1]=a1;
}
else{
l[b1]+=l[a1];
ap[a1]=b1;
}
}
}
return 0;
}