Cod sursa(job #39278)

Utilizator victorgigeaGigea Victor victorgigea Data 26 martie 2007 16:31:40
Problema Cerere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
#define FIN "cerere.in"
#define FOUT "cerere.out"
#define nmax 100000
int t[nmax+1],k[nmax+1],s[nmax+1],x,y,i,n;


int main()
{
 freopen(FIN,"rt",stdin);
 freopen(FOUT,"wt",stdout);

 scanf("%d",&n);

 for(i=1;i<=n;i++)
     scanf("%d",&k[i]);

 for(i=1;i<n;i++)
   { scanf("%d%d",&x,&y);
     t[y]=x;
   }

 for(i=2;i<=n;i++)
        if(k[i]!=0)
           { int j,p=i;
             for(j=1;j<=k[i];j++)
                p=t[p];
              s[i]=1+s[p];
            }
 for(i=1;i<=n;i++)
    printf("%d ",s[i]);

 return 0;
}