Pagini recente » Cod sursa (job #1678095) | Cod sursa (job #2778560) | Cod sursa (job #1020365) | Cod sursa (job #2537920) | Cod sursa (job #879236)
Cod sursa(job #879236)
#include <cstdio>
using namespace std;
long n,i,j,m,a[20][250001],p,q,max,putere;
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++){scanf("%ld",&a[1][i]);}
for(i=2;i<=18;i++){
p=1;for(j=1;j<=i;j++){p*=2;}
for(j=1;j<=n;j++){a[i][j]=a[i-1][a[i-1][j]];}
}
for(i=1;i<=m;i++){
scanf("%ld%ld",&p,&q);
max=262144;putere=19;
while((p)&&(q)){
while(q<max){max/=2;putere--;}
p=a[putere][p];q-=max;
}
printf("%ld ",p);
}
return 0;
}