Pagini recente » Cod sursa (job #1390984) | Cod sursa (job #2862680) | Cod sursa (job #2105717) | Cod sursa (job #2793894) | Cod sursa (job #1160659)
#include <cstdio>
#define DIM 250010
using namespace std;
int n, m, i, j, k, v[20][DIM], p[20], a[DIM], x, y;
void calculare_puteri(){
p[0]=1;
for(i=1; i<19; i++)
p[i]=p[i-1]*2;
for(i=2; i<=n; i++)
a[i]=a[i/2]+1;
}
int main(){
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
scanf("%d %d", &n, &m);
calculare_puteri();
for(i=1; i<=n; i++)
scanf("%d", &v[0][i]);
for(i=1, k=2; j<=n; i++, k*=2)
for(j=1; j<=n; j++)
v[i][j]=v[i-1][ v[i-1][j] ];
for(;m;m--)
{
scanf("%d %d", &x, &y);
for(;y>0; y-=p[ a[y] ])
x=v[ a[y] ][x];
printf("%d\n", x);
}
return 0;
}