Pagini recente » Cod sursa (job #3222865) | Cod sursa (job #3278628) | Cod sursa (job #838841) | Cod sursa (job #6196) | Cod sursa (job #3293133)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int parents[30][200005];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ifstream cin{"stramosi.in"};
ofstream cout{"stramosi.out"};
int N, Q;
cin >> N >> Q;
for (int i = 1; i <= N; i++) {
cin >> parents[0][i];
}
for (int i = 1; i <= 29; i++) {
for (int j = 1; j <= N; j++) {
parents[i][j] = parents[i - 1][parents[i - 1][j]];
}
}
while (Q--) {
int a, b;
cin >> a >> b;
for (int i = 0; i <= 29; i++) {
if (b & (1 << i)) {
a = parents[i][a];
}
}
cout << a << '\n';
}
return 0;
}