Pagini recente » Cod sursa (job #2389708) | Cod sursa (job #2760467) | Cod sursa (job #234082) | Cod sursa (job #387685) | Cod sursa (job #219931)
Cod sursa(job #219931)
#include <cstdio>
using namespace std;
int v[19][250005];
int n, m, i, j, p, q, t;
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d %d", &n, &m);
for (i = 1; i <= n; i++)
scanf("%d", &v[0][i]);
for (i = 1; i <= 18; i++)
for (j = 1; j <= n; j++)
v[i][j] = v[i-1][v[i-1][j]];
for (i = 1; i <= m; i++) {
scanf("%d %d ", &q, &p);
while (p && q) {
t = 0;
while (1 << (t + 1) < p)
t++;
q = v[t][q];
p -= 1<<t;
}
printf("%d\n",q);
}
return 0;
}