Cod sursa(job #79469)
#include <stdio.h>
#define infile "stramosi.in"
#define outfile "stramosi.out"
#define nmax 250001
long n, m, c[nmax], i, v[nmax][nmax], q, p, j;
int main()
{
int temp;
freopen(infile, "r", stdin);
freopen(outfile, "w", stdout);
scanf("%ld %ld\n", &n, &m);
for (i=1; i<=n; i++) scanf("%ld ", &c[i]);
for (i=1; i<=n; i++)
{
temp=0;
j=i;
while(c[j])
{
v[i][++temp]=c[j];
j=c[j];
}
}
for (i=1; i<=m; i++)
{
scanf("%ld %ld\n", &q, &p);
printf("%ld\n", v[q][p]);
}
fclose(stdin);
fclose(stdout);
return 0;
}