Sponsors

Codeforces Round #381 (Div. 1), problem: (B) Alyona and a tree Solution in C/C++

Hi guys , I just solved the second problem of round 381 , Hope you like it , feel free to comment any better solution .

 

#include<stdio.h>
#include<stdlib.h>
typedef long long unsigned llu;
typedef unsigned u;
u P[19][222222],S[222222],R[222222],A[222222];
u *G[222222],Ga[222222],Gi[222222];
llu W[19][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 F(u n)
{
u i,j=0;
for(i=Gi[n];i–;)j+=F(G[n][i]);
return R[n]=j+1-S[n];
}
int main()
{
u n,i=0,j,k,l;
for(scanf(“%u”,&n);++i<=n;)scanf(“%u”,A+i);
for(k=1;++k<=n;)
{
scanf(“%u%u”,&i,&j);
add(i,k);
W[0][k]=j;
P[0][k]=i;
}
W[0][1]=0;
P[0][1]=1;
for(i=0;++i<19;)for(j=0;++j<=n;)
{
P[i][j]=P[i-1][P[i-1][j]];
W[i][j]=W[i-1][j]+W[i-1][P[i-1][j]];
}
for(i=0;++i<=n;)
{
k=A[l=i];
while(l!=1&&W[0][l]<=k)
{
for(j=19;W[–j][l]>k;);
k-=W[j][l];l=P[j][l];
}
++S[l>1?P[0][l]:0];
}
F(1);
for(i=0;++i<=n;)printf(“%u “,R[i]-1);
return 0;
}

 

Judge sentences Australian woman...

Australian Woman Receives Life Sentence for Fatal Mushroom Poisoning Erin...

Chainsaw Man – The...

Chainsaw Man Movie's Reze Arc: Maximum the Hormone Returns! Fans...

You can still save...

Score Big Savings on Steelcase Furniture: Extended Labor Day...

Apple has reportedly launched...

Apple's Internal AI Chatbot: A Retail-Focused Approach Apple, a company...

Solana’s U.S. backing vs....

Solana's U.S. Backing vs. Binance's Asian Capital: A Crypto...

Why Trump Won’t Tell...

Why Trump Won't Tell the Truth About His Health:...

Judge sentences Australian woman to life in prison for fatal mushroom poisoning of in-laws

Australian Woman Receives Life Sentence for Fatal Mushroom Poisoning Erin Patterson, an Australian woman, has been sentenced to life in prison for the fatal mushroom...

Chainsaw Man – The Movie: Reze Arc Anime Announces Insert Song Artist

Chainsaw Man Movie's Reze Arc: Maximum the Hormone Returns! Fans of Chainsaw Man are in for a treat! The upcoming anime movie focusing on...

You can still save 20% off Steelcase office chairs and desks during this extended Labor Day sale

Score Big Savings on Steelcase Furniture: Extended Labor Day Sale! Labor Day may be over, but the deals aren't! Steelcase, a renowned name in...

Apple has reportedly launched an AI chatbot, but it’s not for the iPhone 17 (or you)

Apple's Internal AI Chatbot: A Retail-Focused Approach Apple, a company synonymous with consumer-facing technology, has reportedly launched its own AI chatbot. However, unlike the...

Solana’s U.S. backing vs. Binance’s Asian capital: Who will win this battle?

Solana's U.S. Backing vs. Binance's Asian Capital: A Crypto Clash for Supremacy The cryptocurrency landscape is a volatile battlefield, and a fascinating clash is brewing...

Why Trump Won’t Tell the Truth About His Health: Michael Wolff | Inside Trump’s Head

Why Trump Won't Tell the Truth About His Health: Decoding Michael Wolff's Insights Michael Wolff, a controversial yet impactful figure in political journalism, recently offered...

Mapping the Jazz Faculty Gender Gap

Mapping the Jazz Faculty Gender Gap: A Berklee-Sponsored Study Reveals Stark Imbalance A recently published study sponsored by Berklee College of Music paints a concerning...

Burning Man festivalgoer is found dead in pool of blood as cops launch murder probe

Burning Man Festivalgoer Found Dead in Pool of Blood; Murder Investigation Launched A tragic incident has cast a shadow over the iconic Burning Man festival...

Fleischmann says ‘never’ to town hall (Ruby Rayner/timesfreepress.com)

Fleischmann Declares 'Never' to Town Halls, Calling Them 'Left-Wing Bait' Chattanooga Congressman Chuck Fleischmann has emphatically ruled out holding town hall meetings, labeling them as...