Cod sursa(job #1244140)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 16 octombrie 2014 20:35:26
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
ifstream in("cerere.in");
ofstream out("cerere.out");
const int NMAX = 100009;

int init[NMAX],tata[NMAX],n;

void citire()
{

    in>>n;
    for(int i = 1 ; i <= n ; i++)
        in>>init[i];
    int x,y;
    for(int i = 1 ; i < n ; i++)
    {
        in>>x>>y;
        tata[y] = x;
    }
    in.close();
    return;
}

int solve(int nod)
{

    int sol = 0,k;
    while(init[nod] != 0)
    {
        ++sol;
        k = init[nod];
        for(int i = 1 ; i <= k ; i++)
            nod = tata[nod];
    }
    return sol;
}

int main()
{

    citire();
    for(int i = 1 ; i <= n;  i++)
        out<<solve(i)<<" ";
    out.close();
    return 0;
}