Pagini recente » Monitorul de evaluare | 28_dec_2017_9 | Istoria paginii utilizator/pkse | Diferente pentru info-oltenia-2019/individual intre reviziile 2 si 1 | 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;
}