Pagini recente » Cod sursa (job #2888415) | Cod sursa (job #1506693) | Cod sursa (job #2675539) | Cod sursa (job #637178) | Cod sursa (job #3003228)
#include <bits/stdc++.h>
using namespace std;
int n, q;
int t[250001][19];
int query(int nod, int k) {
for (int h = 18; h >= 0; h--) {
if ((k & (1 << h))) {
nod = t[nod][h];
}
}
return nod;
}
int main() {
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
cin >> n >> q;
for (int i = 1; i <= n; i++) {
cin >> t[i][0];
}
for (int h = 1; h <= 18; h++) {
for (int i = 1; i <= n; i++) {
t[i][h] = t[t[i][h - 1]][h - 1];
}
}
while (q--) {
int nod, k;
cin >> nod >> k;
cout << query(nod, k) << '\n';
}
return 0;
}