Pagini recente » Cod sursa (job #366444) | Cod sursa (job #2251245) | Cod sursa (job #174008) | Cod sursa (job #1118129) | Cod sursa (job #2282893)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cerere.in");
ofstream out("cerere.out");
int main() {
ios::sync_with_stdio(false); in.tie(0); out.tie(0);
int n; in >> n;
vector< int > v(n + 1);
for(int i = 1; i <= n; ++i) {
in >> v[i];
}
vector< int > tata(n + 1);
for(int i = 1; i < n; ++i) {
int a, b; in >> a >> b;
tata[b] = a;
}
for(int i = 1; i <= n; ++i) {
if(v[i] == 0) {
out << v[i] << " ";
continue;
}
int cnt = 0, ans = 0;
int target = i;
int newMonkey = i;
do {
newMonkey = target;
cnt = 0;
while(cnt < v[newMonkey]) {
target = tata[target];
cnt++;
}
ans++;
} while(v[target] != 0);
out << ans << " ";
}
in.close(); out.close();
return 0;
}