Cod sursa(job #3158100)

Utilizator Allie28Radu Alesia Allie28 Data 17 octombrie 2023 18:30:33
Problema Cerere Scor 0
Compilator cpp-64 Status done
Runda HLO 2023 - Cls 11-12 - Tema 0 Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

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

const int LMAX = 100005;

int k[LMAX],father[LMAX], viz[LMAX];

int main(){
    int n, i, j, nr, strp;
    fin>>n;
    for (i = 1; i <= n; i++) {
        fin>>k[i];
    }
    for (i = 1; i < n; i++) {
        int x, y;
        fin>>x>>y;
        father[y] = x;
    }
    for (i = 1; i <= n; i++) {
        j = i;
        nr = 0;
        while (k[j] != 0 && !viz[j]) {
            strp = k[j];///cati stramosi trb sa parcurg
            for (int l = 0; l < strp; l++) {
                j = father[j]; /// j devine stramosul curentului j
            }
            nr++;
        }
        viz[i] =  nr;
        fout<<nr+viz[j]<<" ";

    }




    fin.close();
    fout.close();
    return 0;
}