Pagini recente » Cod sursa (job #3253593) | Cod sursa (job #437750) | Cod sursa (job #437765) | Cod sursa (job #2498642) | Cod sursa (job #3171361)
#include <iostream>
using namespace std;
int n, m;
int dp[18][250001];
int main(){
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
cin >> n >> m;
for(int i=1; i<=n; ++i)
cin >> dp[0][i];
for(int i=1; (1 << i) <= n; ++i)
for(int j=1; j <= n; ++j)
dp[i][j] = dp[i-1][dp[i-1][j]];
int q, p;
while(m--) {
cin >> q >> p;
for(int i=0; p; ++i) {
if(p & 1)
q = dp[i][q];
p >>= 1;
}
cout << q << '\n';
}
return 0;
}