Pagini recente » Cod sursa (job #1765651) | Cod sursa (job #84997) | Cod sursa (job #1686) | Cod sursa (job #2317982) | Cod sursa (job #2332148)
#include<bits/stdc++.h>
#define N 250010
using namespace std;
int n,m;
int dp[N][25];
int rs;
int b[N];
int main() {
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
cin>>n>>m;
for (int i=1; i<=n; ++i) {
int x; cin>>x;
b[i]=x;
}
for (int i=1; i<=n; ++i) dp[i][0]=b[i];
for (int i=1; i<=n; ++i) {
for (int j=1; (1<<j)<=n; ++j) dp[i][j]=dp[dp[i][j-1]][j-1];
}
while (m--) {
int a,p; cin>>a>>p; rs=a;
for (int i=0; i<=20; ++i) {
if ((1<<i) & p) rs=dp[rs][i];
}
cout<<rs<<'\n';
}
return 0;
}