Pagini recente » Cod sursa (job #128644) | Cod sursa (job #1302182) | Cod sursa (job #1548684) | Cod sursa (job #671513) | Cod sursa (job #2095749)
#include<cstdio>
int t[20][250005];
int main(){
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int n,m,i,q,p,cnt,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&t[0][i]);
for(i=1;(1<<i)<n;i++)
for(j=1;j<=n;j++)
t[i][j]=t[i-1][t[i-1][j]];
for(i=1;i<=m;i++){
scanf("%d%d",&q,&p);
j=1,cnt=0;
while(j<=p)
j=j*2,cnt++;
cnt--;
j=j/2;
while(p){
if (p>=j){
q=t[cnt][q];
p=p-j;}
j=j/2;
cnt--;}
printf("%d\n",q);}
return 0;}