Cod sursa(job #3281611)

Utilizator UpgradeStrikeMurgilas Mihai-Rares UpgradeStrike Data 2 martie 2025 17:49:16
Problema Cerere Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;
ifstream in("cerere.in");
ofstream out("cerere.out");
int v[100001],s[100001],d[100001],r[100001];
int n;
void sbp(int i,int dr)
{
    d[dr]=i;
    if(v[i]==0)
        r[i]=0;
    else
        r[i]=r[d[dr-v[i]]]+1;
    for(int j=1;j<=n;j++)
        if(s[j]==i)
            sbp(j,dr+1);
}
int main()
{
    in>>n;
    for(int i=1;i<=n;i++)
        in>>v[i];
    for(int i=1;i<n;i++)
    {
        int a,b;
        in>>a>>b;
        s[b]=a;
        r[i]=-1;
    }
    r[n]=-1;
    int l=1;
    while(s[l])
        l++;
    sbp(l,1);
    for(int i=1;i<=n;i++)
        out<<r[i]<<' ';
    return 0;
}