Cod sursa(job #2360096)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 1 martie 2019 12:46:56
Problema Cerere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>
#define DIM 100000
using namespace std;

ifstream in("cerere.in");
ofstream out("cerere.out");

int n;
int k[DIM + 5], parent[DIM];
vector<int> children[DIM];

int main()
{
    in>>n;
    for( int i = 1; i <= n; i++ )
        in>>k[i];

    for( int i = 1; i < n; i++ )
    {
        int from, to; in>>from>>to;

        children[from].push_back(to);
        parent[to] = from;
    }

    for( int i = 1; i <= n; i++ )
    {
        int current_node = i;
        int solution = 0;

        while( k[current_node] != 0 )
        {
            int step_back = k[current_node];

            while( step_back != 0 )
            {
                step_back--;
                current_node = parent[current_node];
            }

            solution++;
        }

        out<<solution<<" ";
    }

    return 0;
}