Pagini recente » Cod sursa (job #1284424) | Cod sursa (job #1572416) | Cod sursa (job #2396256) | Cod sursa (job #2848191) | Cod sursa (job #3003240)
#include <bits/stdc++.h>
using namespace std;
int n, q;
int t[250001][19];
fstream fin("stramosi.in",ios::in),fout("stramosi.out",ios::out);
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() {
fin >> n >> q;
for (int i = 1; i <= n; i++) {
fin >> 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;
fin >> nod >> k;
fout << query(nod, k) << '\n';
}
return 0;
}