Cod sursa(job #2321200)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 15 ianuarie 2019 20:03:15
Problema Cerere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,i,j,a,b,cnt,ans[100010],t[100010],k[100010],st[100010];
vector<int> v[100010];

void dfs(int poz)
{
    st[++cnt]=poz;
    ans[poz]=ans[st[cnt-k[poz]]]+1;
    for(auto it:v[poz])
        dfs(it);
    cnt--;
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>k[i];
    for(i=1;i<n;i++)
    {
        f>>a>>b;
        t[b]=a;
        v[a].push_back(b);
    }
    for(i=1;i<=n;i++)
        if(!t[i])
            break;
    dfs(i);
    for(i=1;i<=n;i++)
        g<<ans[i]-1<<' ';
    return 0;
}