Pagini recente » Cod sursa (job #853912) | Cod sursa (job #150810) | Cod sursa (job #2450861) | Cod sursa (job #2295532) | Cod sursa (job #337138)
Cod sursa(job #337138)
#include<stdio.h>
#define NMAX 25001
int n,m,i,j,p,q,r;
int str[18][NMAX];
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++) scanf("%d",&str[0][i]);
for(j=1;(1<<j)<=n;j++)
for(i=1;i<=n;i++)
str[j][i]=str[j-1][str[j-1][i]];
while(m--) {
scanf("%d %d",&q,&p);
r=q;
while(p&&r) {
for(i=0;(1<<i)<=p;i++);
r=str[--i][r];
p-=1<<i;
}
printf("%d\n",r);
}
return 0;
}