Cod sursa(job #2626604)

Utilizator darkeagleDaniel Popescu darkeagle Data 7 iunie 2020 02:55:18
Problema Cerere Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;


int n;
int v[100001], g[100001],g1[100001];
void citire() {

    freopen("cerere.in", "r", stdin);
    freopen("cerere.out", "w", stdout);

    scanf("%d",&n);

    int i, j;

    for(i = 1; i <= n ;i++) {
        scanf("%d",&v[i]);
    }

    int x;
    int y;
    for(i=1;i<=n;i++) {

        scanf("%d %d",&x,&y);
        g[y] = x;
    }

}
int str(int t1) {

int r, nr1;

int h;

  h = t1;
   nr1 = 0;
while(nr1 < v[t1])
{

    r = g[h];
    h = r;
    nr1++;
}
return r;
}

int main()
{

    citire();
   // cout<<str(7) << endl;

    int nr, i, j;
     for(i=1;i<=n;i++) {

        nr = 0;
        if(v[i] == 0)
            g1[i] = 0;
        else
        {
            int h, r, r1, r2;

            r = i;

             g1[i] = g1[str(i)] + 1;

        }
    }

    for(i=1;i<=n;i++) {


        printf("%d ",g1[i]);
    }


    return 0;
}