Pagini recente » Cod sursa (job #584867) | Cod sursa (job #1112508) | Cod sursa (job #2934875) | Cod sursa (job #656794) | Cod sursa (job #1454317)
#include <bits/stdc++.h>
int parent[19][250001];
int main() {
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
int n, q;
scanf("%d%d", &n, &q);
for (int i = 1; i <= n; ++i)
scanf("%d", &parent[0][i]);
for (int pw = 1; (1 << pw) <= n; ++pw)
for (int i = 1; i <= n; ++i)
parent[pw][i] = parent[pw - 1][parent[pw - 1][i]];
while (q--) {
int which, nod;
scanf("%d%d", &nod, &which);
for (int pw = 0; (1 << pw) <= which; ++pw)
if (which & (1 << pw))
nod = parent[pw][nod];
printf("%d\n", nod);
}
return 0;
}