Pagini recente » Cod sursa (job #393276) | Cod sursa (job #1490099) | Cod sursa (job #1819486) | Cod sursa (job #2792306) | Cod sursa (job #386668)
Cod sursa(job #386668)
# include <cstdio>
# include <cstdlib>
using namespace std;
int n, m, *a[250003], s[250003];
int main ()
{
int q, p;
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
scanf("%d%d", &n, &m);
for (int i=1;i<=n;i++)
scanf("%d", &s[i]);
for (int i=1;i<=n;i++)
{
a[i]=(int *) malloc (4);
a[i][0]=0;
}
int x;
for (int i=1;i<=n;i++)
{
x=i;
while (s[x])
{
a[i][0]++;
a[i]=(int *) realloc (a[i], (a[i][0]+1)*4);
a[i][a[i][0]]=s[x];
x=s[x];
}
}
for (int i=1;i<=m;i++)
{
scanf("%d%d", &q, &p);
if (a[q][0]>=p)
printf("%d\n", a[q][p]);
else
printf("0\n");
}
return 0;
}