Pagini recente » Cod sursa (job #884951) | Cod sursa (job #1519280) | Cod sursa (job #1646620) | Cod sursa (job #1448351) | Cod sursa (job #1652237)
#include <cstdio>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <cstring>
#define NMax 250005
#define INF 0x3f3f3f3f
using namespace std;
int n,q,p,w;
int a[19][NMax];
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&q);
for(int i = 1; i <= n; ++i){
scanf("%d",&a[0][i]);
}
for(int i = 1; (1<<i) <= n; ++i){
for(int j = 1; j <= n; ++j){
a[i][j] = a[i - 1][a[i - 1][j]];
}
}
for(int count = 1; count <= q; ++count){
scanf("%d%d",&p,&w);
for(int i = 0; (1<<i) <= w; ++i){
if((1<<i) & w){
p = a[i][p];
}
}
printf("%d\n",p);
}
return 0;
}