Cod sursa(job #277463)

Utilizator mircea_infoSuciu Mircea-Gabriel mircea_info Data 11 martie 2009 19:03:23
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#define maxn 100001

using namespace std;

int sir[maxn],tata[maxn];
int n;

int main()
{
    int x,y;
    freopen("cerere.in","r",stdin);
    freopen("cerere.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&sir[i]);
    for(int i=1;i<n;i++)
    {
        scanf("%d%d",&x,&y);
        tata[y]=x;
    }
    for(int i=1;i<=n;i++)
    {
        int s=0,x;
        int poz=i;
        while(sir[poz]!=0)
        {
            x=sir[poz];
            for(int j=1;j<=x;j++)
                poz=tata[poz];
            s++;
        }
        printf("%d ",s);
    }
    return 0;
}