Pagini recente » Cod sursa (job #2454281) | Cod sursa (job #1151096) | Cod sursa (job #2914034) | Cod sursa (job #1901288) | Cod sursa (job #751615)
Cod sursa(job #751615)
#include<cstdio>
using namespace std;
int a1,b1,n,ul,nr,i,str[100002],tata[100002],k[100002];
int main()
{
freopen("cerere.in","r",stdin);
freopen("cerere.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&k[i]);
for(i=1;i<n;i++)
{
scanf("%d",&a1);
scanf("%d",&b1);
tata[b1]=a1;
}
for(i=1;i<=n;i++)
if(k[i]!=0)
{
nr=0;
ul=i;
while(1)
{
ul=tata[ul];
nr++;
if(nr==k[i]) break;
}
str[i]=ul;
}
for(i=1;i<=n;i++)
{
if(k[i]==0) printf("0 ");
else
{
nr=0;
ul=i;
while(1)
{
ul=str[ul];
nr++;
if(k[ul]==0) break;
}
printf("%d ",nr);
}
}
printf("\n");
return 0;
}