Cod sursa(job #342167)

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

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

	a[0][0]=0;
	scanf("%ld%ld",&n,&m);
	for (i=1;i<=n;i++) {
		scanf("%ld",&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("%ld%ld",&j,&i);
		k=0;
		while (i)
		{
			if (i%2==1)
				j=a[k][j];
			k++;
			i=i/2;
		}
		printf("%ld\n",j);
	}
	return 0;
}