Cod sursa(job #965750)

Utilizator costinbanuCostin Banu costinbanu Data 24 iunie 2013 17:01:34
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
using namespace std;

int v[100002], tati[100002], n, a, b;

int solve(int m, int c) {
    int k = 0;
    while (m != 0 && c > 0) {
        c--;
        m = tati[m];
        if (c == 0) c = v[m], k++;
    }
    return k;
}

int main(){
    ifstream in("cerere.in");
    ofstream out("cerere.out");
    if (in && out){
        in>>n;
        for(int i = 1; i <= n; i++)
            in>>v[i];
        for(int i = 0; i < n; i++)
            in>>a>>b,  tati[b] = a;
        for(int i = 1; i <= n; i++)
             out<<solve(i, v[i])<<" ";
        in.close(), out.close();
    }
    return 0;
}