Cod sursa(job #2133213)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 16 februarie 2018 17:53:28
Problema Cerere Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
using namespace std;
ifstream in ("cerere.in");
ofstream out ("cerere.out");
int n,a,b,x,sol,aux[100001],tata[100001],k[100001];
int main (void) {
    in >> n;
    for (int i = 1; i <= n; i ++) {
        in >> k[i];
    }
    for (int i = 1; i < n; i ++) {
        in >> a >> b;
        tata[b] = a;
    }
    for (int i = 1; i <= n; i ++) {
        aux[i] = i;
        for (int j = 1; j <= k[i]; j ++) {
             aux[i] = tata[ aux[i] ];
        }
    }
    for (int i = 1; i <= n; i ++) {
        x = i;
        sol = 0;
        while (aux[x] != x) {
            x = aux[x];
            sol++;
        }
        out << sol <<" ";
    }
    return 0;
}