Pagini recente » Cod sursa (job #1409964) | Monitorul de evaluare | Istoria paginii utilizator/alexscrofan | Istoria paginii utilizator/crissu | Cod sursa (job #341856)
Cod sursa(job #341856)
#include<cstdio>
#define N 100001
struct cereri{int s,t;}v[N];
int n,num;
void citire()
{
freopen("cerere.in","r",stdin);
freopen("cerere.out","w",stdout);
scanf("%d",&n);
for (int i=1; i<=n; ++i)
scanf("%d",&v[i].t);
for (int i=1; i<n; ++i)
{
int x,y;
scanf("%d%d",&x,&y);
v[y].s=x;
}
}
void drum(int i)
{
if (!v[i].t||!v[i].s)
return ;
int k=i;
for (int j=1; j<=v[k].t; ++j)
{
i=v[i].s;
}
++num;
drum(i);
}
void maimute_inteligente()
{
for (int i=1; i<=n; ++i)
{
if (!v[i].t)
printf("0 ");
else
{
num=0;
drum(i);
printf("%d ",num);
}
}
}
void afis()
{
for (int i=1; i<=n; ++i)
printf("%d %d %d\n",i,v[i].s,v[i].t);
}
int main()
{
citire();
//afis();
maimute_inteligente();
return 0;
}