CodeForces Round #379 (Div. 2), problem: (E) Anton and Tree Solution in C/C++

Hey guys I just tried the Anton and Tree problem , hope you might like my solution feel free to comment better solution .

#include<stdio.h>
#include<stdlib.h>
typedef unsigned u;
u D[222222],C[222222],B[222222],A[222222],I;
u F(u x){if(D[x]!=x)return D[x]=F(D[x]);return x;}
u *G[222222],Ga[222222],Gi[222222];
void add(u i,u j)
{
if(Ga[i]==Gi[i])
{
if(!Ga[i])G[i]=(u*)calloc(Ga[i]=1,sizeof(u));
else G[i]=(u*)realloc(G[i],(Ga[i]<<=1)*sizeof(u));
}
G[i][Gi[i]++]=j;
return;
}
u X[222222],Y[222222],*P,*Q,*R,Z[222222];
int main()
{
u n,i=0,j,k,p,q,r=0;
for(scanf(“%u”,&n);++i<=n;D[i]=i)scanf(“%u”,C+i);
for(k=n;–k;)
{
scanf(“%u%u”,&i,&j);
i=F(i);j=F(j);
if(i>j){q=i;i=j;j=q;}
if(C[i]!=C[j]){A[I]=i;B[I++]=j;}
else{D[j]=i;}
}
for(k=-1;++k<I;)
{
i=F(A[k]);j=F(B[k]);
add(i,j);add(j,i);
++Z[i];++Z[j];
}
for(q=i=0;++i<=n;)if(Z[i]==1)X[q++]=i;
for(P=X,Q=Y;(p=q);)
{
r+=1+(p>1);
for(q=0;p–;)
{
for(i=Gi[k=P[p]];i–;)
if(–Z[j=G[k][i]]==1)Q[q++]=j;
}
R=P;P=Q;Q=R;
}
printf(“%u\n”,r>>1);
return 0;
}

Advertisement

spot_img

7 Reasons This Viral...

📢 As an Amazon Associate, I earn from qualifying...

Technology Innovation Institute Completes...

In a historic milestone for Middle Eastern space exploration,...

We Tested Viral Kitchen...

After putting the Viral Kitchen Gadgets through a proper...

L&T wins ₹10,000-15,000 crore...

Indian infrastructure and engineering conglomerate Larsen & Toubro (L&T)...

If a chatbot prompt...

When news recently surfaced about an alleged breach of...

We Tested Viral Kitchen...

There comes a point when you realise that tolerating...

7 Reasons This Viral Kitchen Gadgets Is Worth Every Single Penny

📢 As an Amazon Associate, I earn from qualifying purchases.If you had told me six months ago that a single purchase would change how...

Technology Innovation Institute Completes Asteroid-Landing Probe for Landmark Emirates Mission to the Asteroid Belt

In a historic milestone for Middle Eastern space exploration, the Technology Innovation Institute (TII) has officially completed its state-of-the-art asteroid-landing probe. Designed and constructed...

We Tested Viral Kitchen Gadgets Here Is What You Must Know

After putting the Viral Kitchen Gadgets through a proper 30-day real-world test, I can tell you exactly what works, what does not, and who...

L&T wins ₹10,000-15,000 crore power transmission orders in India, Middle East

Indian infrastructure and engineering conglomerate Larsen & Toubro (L&T) has achieved another major milestone, securing multiple mega orders within its Power Transmission & Distribution...

If a chatbot prompt like ‘find Australian medicine statistics’ results in a website breach, the responsibility does not lie with a piece of code

When news recently surfaced about an alleged breach of Australia’s Medicare computer systems triggered by an automated artificial intelligence tool, public alarm escalated quickly....

We Tested Viral Kitchen Gadgets Here Is What You Must Know

There comes a point when you realise that tolerating a frustrating situation is costing you more than just fixing it properly. That was the...

NBA Trade Rumors: Potential RFA Targets, Fallout for Jalen Duren, & the Big Board

The NBA landscape is constantly shifting, and recent contract updates regarding Detroit Pistons center Jalen Duren have created significant ripples across the league’s transactional...

The Ultimate Viral Kitchen Gadgets Guide You Didnt Know You Needed

If you had told me six months ago that a single purchase would change how I approach my daily routine, I would not have...

Is it OK to play bird sounds for my lovebird?

Lovebirds are famous for their vibrant personalities, affectionate nature, and expressive vocalizations. Because they are highly social flock animals in the wild, many owners...