Pagini recente » Cod sursa (job #660064) | Cod sursa (job #231552) | Cod sursa (job #2072044) | Cod sursa (job #1421331) | Cod sursa (job #274808)
Cod sursa(job #274808)
#include<fstream.h>
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int *t,*rg,n,m,i,o,a,b;
int rad(int nod)
{
if(t[nod]==nod) return nod;
return rad(t[nod]);
}
int main(void)
{
in>>n>>m;
t=new int[n+10];
rg=new int[n+10];
for(i=1;i<=n;i++)
{
t[i]=i;
rg[i]=1;
}
for(i=1;i<=m;i++)
{
in>>o>>a>>b;
if(o==1)
{
if(rg[a]<rg[b]) t[a]=b;
else t[b]=a;
if(rg[a]==rg[b]) rg[b]++;
}
else
{
if(rad(a)==rad(b)) out<<"DA \n";
else out<<"NU \n";
}
}
in.close();
out.close();
delete t;
delete rg;
return 0;
}