Cod sursa(job #342175)

Utilizator vdobrotaDobrota Valentin Eugen vdobrota Data 20 august 2009 18:51:17
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#define dim 250001

int main()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);
	int a[20][dim],n,m,i,j,k;

	a[0][0]=0;
	scanf("%d%d",&n,&m);
	for (i=1;i<=n;i++) {
		scanf("%d",&j);
		a[0][i]=j;
	}

	for (j=1; j<19; j++) {
		a[j][0]=0;
		for (i=1;i<=n;i++)
			a[j][i]=a[j-1][a[j-1][i]];
		}
	while (m--)
	{
		scanf("%d%d",&j,&i);
		k=0;
		while (i)
		{
			if (i%2)
				j=a[k][j];
			k++;
			i/=2;
		}
		printf("%d\n",j);
	}
	return 0;
}