Pagini recente » Cod sursa (job #1194919) | Cod sursa (job #2586102) | Cod sursa (job #2198213) | Cod sursa (job #28781) | Cod sursa (job #3196748)
#include <bits/stdc++.h>
using namespace std;
const int nmax = 250005;
const int lg = 17;
int n,m;
int p,q;
int r[nmax][lg+1];
int main(){
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
cin>>n>>m;
vector<int> v(n);
for(int i=1;i<=n;i++) cin>>r[i][0];
for(int l = 1;(1<<l)<=n; l++)
for(int i = 1; i <= n; i++)
r[i][l]=r[r[i][l-1]][l-1];
for(int i=1;i<=m;i++){
cin>>q>>p;
for(int l=lg;l>=0;--l)
if(p>=(1<<l)){
q=r[q][l];
p-=(1<<l);
}
cout<<q<<'\n';
}
return 0;
}