Pagini recente » Cod sursa (job #211660) | Cod sursa (job #582244) | Cod sursa (job #226581) | Cod sursa (job #1624277) | Cod sursa (job #475757)
Cod sursa(job #475757)
#include <cstdio>
#define N 10003
int v[N],ok[N],c[N+10],a[N],b[N],n,i,x=0,y=0,s=0;;
void coad( int k)
{
int p;
if (v[k]!=0)
ok[k]=c[y-v[k]];
v[k]=-1;
for (p=1;p<n;++p)
if (a[p]==k) ++y,c[y]=b[p],coad(b[p]);
y--;
}
int main()
{
freopen("cerere.in","r",stdin);
freopen("cerere.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i) scanf("%d",&v[i]);
for (i=1;i<n;++i)
{
scanf("%d %d",&a[i],&b[i]);
s+=b[i];
}
s=(n*(n+1))/2-s;
c[y]=s;
coad(1);
for (i=1;i<=n;++i)
{
s=i;v[i]=0;
while (ok[s]!=0) ++v[i],s=ok[s];
printf("%d ",v[i]);
}
return 0;}