Pagini recente » Cod sursa (job #1884742) | Cod sursa (job #2150612) | Cod sursa (job #1345932) | Cod sursa (job #1004330) | Cod sursa (job #965580)
Cod sursa(job #965580)
#include<cstdio>
using namespace std;
int v[100002], tati[100002], n, a, b;
int mame(int k, int m){
if (tati[m] == 0 || k == 0) return m;
else return mame(k-1, tati[m]);
}
int cereri(int m){
if (v[m] == 0) return 0;
else return 1 + cereri(mame(v[m], m));
}
int main(){
FILE *in = fopen("cerere.in", "r"), *out = fopen("cerere.out", "w");
if (in && out){
fscanf(in, "%d", &n);
for(int i = 1; i <= n; i++)
fscanf(in, "%d", v+i);
for(int i = 0; i < n; i++)
fscanf(in, "%d %d", &a, &b), tati[b] = a;
for(int i = 1; i <= n; i++)
fprintf(out, "%d ", cereri(i));
fclose(in), fclose(out);
}
return 0;
}