Cod sursa(job #3365116)

Utilizator Andrei_Gagea08Andrei Gagea Andrei_Gagea08 Data 17 septembrie 2026 07:49:41
Problema Cerere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

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

int s[100001];
int x[100001];
int k[100001];
int sol[100001];
vector<int> v[100001];

void dfs(int nod,int depth)
{
    s[++depth] = nod;
    if(k[nod]!=0)
        sol[nod] = sol[s[depth-k[nod]]] + 1;
    for(auto it:v[nod])
        dfs(it , depth);
    depth--;
}

int main()
{
    int n,i,a,b;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>k[i];
    for(i=1;i<=n;i++)
    {
        fin>>a>>b;
        v[a].push_back(b);
        x[b]=a;
    }

    i=1;
    while(x[i])
        i++;
    dfs(1,0);
    for(i=1;i<=n;i++)
        fout<<sol[i]<<' ';
    return 0;
}