Pagini recente » Cod sursa (job #791803) | Cod sursa (job #331494) | Cod sursa (job #367193) | Cod sursa (job #3229408) | Cod sursa (job #1779332)
#include <stdio.h>
#define MAX 250005
int n, m, x, y, p[19][MAX];
int ans(int x, int y){
int res = x, nr = 0;
while(y){
if(y & 1)
res = p[nr][res];
y >>= 1;
++nr;
}
return res;
}
int main(){
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; ++i)
scanf("%d", &p[0][i]);
for(int i = 1; (1<<i) <= n; ++i)
for(int j = 1; j <= n; ++j)
p[i][j] = p[i - 1][p[i - 1][j]];
for(int i = 0; i < m; ++i){
scanf("%d%d", &x, &y);
printf("%d\n", ans(x, y));
}
return 0;
}