Pagini recente » Cod sursa (job #2872004) | Cod sursa (job #85991) | Cod sursa (job #647404) | Cod sursa (job #1676283) | Cod sursa (job #502118)
Cod sursa(job #502118)
#include <iostream>
#include <stdio.h>
#include <string.h>
int n, m, i, j, q, p, temp;
int f[31][250001];
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", &f[0][i]);
}
for(i = 1; i <= 30; i++){
for(j = 1; j <= n; j++){
f[i][j] = f[i-1][f[i-1][j]];
}
}
for(j = 0; j < m; j++){
scanf("%d%d", &q, &p);
temp = 0;
while(p){
if(p%2){
q=f[temp][q];
}
p/=2;
temp++;
}
printf("%d\n", q);
}
fclose(stdin);
fclose(stdout);
return 0;
}