Pagini recente » Cod sursa (job #770968) | Cod sursa (job #1642764) | Cod sursa (job #1313568) | Cod sursa (job #169433) | Cod sursa (job #476836)
Cod sursa(job #476836)
#include <stdio.h>
#define Nmax 250002
#define CT 19
int Str[CT][Nmax];
int n,m;
int main(){
int i,j,q,p;
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(i=1;i<CT;++i)
for(j=1;j<=n;++j)
Str[i][j]=Str[i-1][Str[i-1][j]];
for(; m; --m){
scanf("%d%d",&q,&p);
while( p ){
i=0;
while( (1<<i) <= p ) ++i;
--i;
p -= (1<<i);
q=Str[i][q];
}
printf("%d\n",q);
}
fclose(stdin); fclose(stdout);
return 0;
}