Cod sursa(job #2069426)

Utilizator paulstepanovStepanov Paul paulstepanov Data 18 noiembrie 2017 13:40:13
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cerere.in");
ofstream fout("cerere.out");

int N,TT[100005],K[100005];

void Read()
{
    fin>>N;
    for(int i=1;i<=N;++i)
        fin>>K[i];
}

void Build()
{
    for(int i=1;i<=(N-1);++i)
    {
        int A,B;
        fin>>A>>B;
        TT[B]=A;
    }
}

void Solve()
{
    for(int i=1;i<=N;++i)
    {
        int contor=0;
        int q=i;
        while(K[q]!=0)
        {
            int N=K[q];
            while(N!=0)
            {
                q=TT[q];
                N--;
            }
            contor++;
        }
        fout<<contor<<" ";
    }
}

int main()
{
    Read(); Build(); Solve();
    return 0;
}