Pagini recente » Cod sursa (job #2110392) | Cod sursa (job #1510316) | Cod sursa (job #689064) | Cod sursa (job #1951332) | Cod sursa (job #64876)
Cod sursa(job #64876)
#include <stdio.h>
#define MAX 10000
int p[30000][MAX];
int n,m;
int stramos(int nod, int rang){
if(p[rang][nod]) return p[rang][nod];
if(rang == 1) return nod;
if(p[1][nod] < 0) return -1;
p[rang][nod] = stramos(p[1][nod], rang-1);
return p[rang][nod];
}
int main(){
int i, nod, rang, s;
freopen("stramosi.in", "rt", stdin);
freopen("stramosi.out", "wt", stdout);
scanf("%d %d", &n, &m);
for(i = 1; i <= n; i++){
scanf("%d", &p[1][i]);
if(!p[1][i]) p[1][i]--;
}
for(i = 0; i < m; i++){
scanf("%d %d", &nod, &rang);
s = stramos(nod, rang);
if(s < 0) s++;
printf("%d\n", s);
}
return 0;
}