Cod sursa(job #386668)

Utilizator loginLogin Iustin Anca login Data 25 ianuarie 2010 17:17:55
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
# 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;
}