Pagini recente » Cod sursa (job #1118869) | Cod sursa (job #2903789) | Cod sursa (job #618968) | Cod sursa (job #930046) | Cod sursa (job #327040)
Cod sursa(job #327040)
#include<iostream>
#include<stdio.h>
int main()
{
freopen("cerere.in","r",stdin);
freopen("cerere.out","w",stdout);
long n,i,j,k,t=1,t1=1,nr=0,k1;
long a[100001],b[100001],c[100001],d[100001];
scanf("%ld\n",&n);
for(i=1;i<=n;i++)
{
scanf("%ld ",&a[i]);
d[i]=0;
}
for(i=1;i<n;i++)
scanf("%ld %ld\n",&b[i],&c[i]);
printf("%ld ",d[1]);
for(i=2;i<=n;i++)
{
t=1;
k=i;
k1=i;
nr=0;
if(a[i]==0) printf("%ld ",a[i]);
else
{
while(t)
{
t1=1;
for(j=1;j<n&&t&&t1;j++)
{
if(c[j]==k)
{
t1=0;
nr++;
if(nr==a[k1])
{
if(a[b[j]]!=0) { k=b[j]; d[i]++; k1=k; nr=0; }
else
{
d[i]++;
t=0;
printf("%ld ",d[i]);
}
}
else k=b[j];
}
}
}
}
}
return 0;
}