Pagini recente » Borderou de evaluare (job #2034277) | infoarena - comunitate informatica, concursuri de programare | Borderou de evaluare (job #2034320) | Borderou de evaluare (job #2034369) | Cod sursa (job #765386)
Cod sursa(job #765386)
#include<cstdio>
int n,m,y,z,i,p[100001],r[100001],x,c,d;
int F(int i)
{if(p[i]==i)
return i;
return p[F(p[i])];}
int main()
{freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
p[i]=i;
while(m--)
{scanf("%d%d%d",&x,&y,&z);
if(x==1)
{c=F(y),d=F(z);
if(r[c]>r[d])
p[d]=c;
else
if(c!=d)
{p[c]=d;
if(r[c]==r[d])
r[d]++;}}
else
printf("%s\n",F(y)==F(z)?"DA":"NU");}
return 0;}