Cod sursa(job #3281604)

Utilizator UpgradeStrikeMurgilas Mihai-Rares UpgradeStrike Data 2 martie 2025 17:25:09
Problema Cerere Scor 50
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],r[100001];
void sbp(int i)
{
    if(v[i]==0)
    {
        r[i]=0;
        return;
    }
    int j=i;
    for(int l=v[i];l>0;l--)
        j=s[j];
    if(r[j]==-1)
        sbp(j);
    r[i]=r[j]+1;
}
int main()
{
    int n;
    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;
    for(int i=1;i<=n;i++)
    {
        if(r[i]==-1)
            sbp(i);
        out<<r[i]<<' ';
    }
    return 0;
}