Pagini recente » Cod sursa (job #369358) | Cod sursa (job #1985137) | Cod sursa (job #2619762) | Cod sursa (job #2974169) | Cod sursa (job #675355)
Cod sursa(job #675355)
#include <stdio.h>
#define NMAX 250100
#define LOGNMAX 18
int dp[LOGNMAX][NMAX];
int main ()
{
int i, N, Q, node, step, j, lastNode;
freopen ("stramosi.in", "r", stdin);
freopen ("stramosi.out", "w", stdout);
scanf ("%d%d", &N, &Q);
for (i = 1; i <= N; i ++)
scanf ("%d", &dp[0][i]);
for (i = 1; (1 << i) <= N; i ++)
for (j = 1; j <= N; j ++)
{
lastNode = dp[i - 1][j];
dp[i][j] = dp[i - 1][lastNode];
}
while (Q --)
{
scanf ("%d%d", &node, &step);
for (i = 0; (1 << i) <= step && node; i ++)
if (step & (1 << i))
node = dp[i][node];
printf ("%d\n", node);
}
return 0;
}