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

Stop Buying Cheap Alternatives...

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

Stock market rebound in...

Indian benchmark equity indices witnessed a decisive rebound during...

I Tried Viral Kitchen...

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

Gen Z is spending...

A dramatic transformation is sweeping through the elite corners...

I Tried Viral Kitchen...

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

Live-Action Can You Kiss...

Fans of romantic manga adaptations have an exciting new...

Stop Buying Cheap Alternatives This Viral Kitchen Gadgets Is the Real Deal

📢 As an Amazon Associate, I earn from qualifying purchases.After putting the Viral Kitchen Gadgets through a proper 30-day real-world test, I can tell...

Stock market rebound in early trade: Sensex jumps over 400 points, Nifty holds above 22,390

Indian benchmark equity indices witnessed a decisive rebound during early trade, bringing substantial relief to investors following consecutive sessions of choppy price action. The...

I Tried Viral Kitchen Gadgets For 30 Days Here Is the Honest Truth

📢 As an Amazon Associate, I earn from qualifying purchases.I stumbled across this while desperately trying to fix a recurring problem in my routine....

Gen Z is spending more on art than ever before. It’s a key piece of the Great Wealth Transfer, UBS says

A dramatic transformation is sweeping through the elite corners of the global art market. Known largely for digital culture and disruptive social trends, Generation...

I Tried Viral Kitchen Gadgets For 30 Days Here Is the Honest Truth

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

Live-Action Can You Kiss Me First? Series’ Teaser Reveals Theme Song

Fans of romantic manga adaptations have an exciting new television premiere to look forward to, as the upcoming live-action series based on Yamayade's romance...

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...