Pagini recente » Cod sursa (job #2740135) | Cod sursa (job #1816699) | Cod sursa (job #2658141) | Cod sursa (job #875136) | Cod sursa (job #868245)
Cod sursa(job #868245)
#include <stdio.h>
int log2[250001],str[250002][20],n,m;
int main(){
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d %d",&n,&m);
log2[1]=0;
for(int i=1;i<=n;i++){
scanf("%d",&str[i][1]);
log2[i]=log2[i/2]+1;
}
for(int lev=2;lev<20;lev++){
for(int i=1;i<=n;i++)
str[i][lev]=str[str[i][lev-1]][lev-1];
}
int p,q;
for(int i=0;i<m;i++){
scanf("%d %d",&q,&p);
while(p!=0 && q!=0){
q=str[q][log2[p]];
p-=log2[p];
}
printf("%d\n",q);
}
return 0;
}