Pagini recente » Cod sursa (job #1833572) | Cod sursa (job #2916330) | Cod sursa (job #529213) | Cod sursa (job #2626977)
#include <iostream>
#include <stdio.h>
using namespace std;
const int NMAX = 250005;
int t[20][NMAX];
int main() {
freopen ("stramosi.in", "r", stdin);
freopen ("stramosi.out", "w", stdout);
int n, teste, i, q, p, j, w;
scanf ("%d%d", &n, &teste);
for (i = 1; i <= n; i++)
scanf ("%d", &t[0][i]);
for (i = 1; 1 << i <= n; i++) {
for (j = 1; j <= n; j++)
t[i][j] = t[i - 1][t[i - 1][j]];
}
for (w = 1; w <= teste; w++) {
scanf ("%d%d", &q, &p);
for (i = 0; i <= 17; i++)
if (((1 << i) & p) != 0) {
q = t[i][q];
}
printf ("%d\n", q);
}
return 0;
}