Pagini recente » Cod sursa (job #388972) | Cod sursa (job #3041453) | Cod sursa (job #1900494) | Istoria paginii runda/3_martie_simulare_oji_2024_clasele_11_12/clasament | Cod sursa (job #364567)
Cod sursa(job #364567)
#include<stdio.h>
int tata[100005],grad[100005],n,m,tip,n1,n2,t1,t2;
int cautta (int nod)
{
int ta;
if(tata[nod]==nod)
return nod;
ta=cautta(tata[nod]);
tata[nod]=ta;
return ta;
}
int main ()
{
int i;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
grad[i]=1;
tata[i]=i;
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&tip,&n1,&n2);
t1=cautta(n1);
t2=cautta(n2);
if(tip==2)
{
if(t1==t2)
printf("DA\n");
else
printf("NU\n");
continue;
}
if(grad[t1]<grad[t2])
tata[n1]=n2;
else
if(grad[t2]<grad[t1])
tata[n2]=n1;
else
{
tata[t1]=t2;
++grad[t1];
}
}
return 0;
}