Pagini recente » Statistici Old Twister (OlTwister) | Cod sursa (job #1536034) | Cod sursa (job #2017854) | Cod sursa (job #2685637) | Cod sursa (job #200409)
Cod sursa(job #200409)
#include <stdio.h>
#include <math.h>
#define MAXN 300000
#define MAXL 100
long n, m, j, q, t, p, i, v[MAXL + 1][MAXN];
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%ld %ld", &n, &m);
for (i = 1; i <= n; ++i) {
scanf("%ld", &v[0][i]);
}
for (i = 1; i <= MAXL; ++i) {
for (j = 1; j <= n; ++j) {
v[i][j] = v[i - 1][v[i - 1][j]];
}
}
for (i = 1; i <= m; ++i) {
scanf("%ld %ld ", &q, &p);
while (p && q) {
t = 0;
while(1 << (t + 1) < p) {
++t;
}
q = v[t][q];
p -= 1 << t;
}
printf("%ld\n", q);
}
return 0;
}