Cod sursa(job #307841)

Utilizator ooctavTuchila Octavian ooctav Data 25 aprilie 2009 12:07:20
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
int e[20][250001];
int n,m;

void citire()
{
	int a,i;
	scanf("%d %d",&n,&m);
	for(int j=1;j<=n;j++)
	{
		scanf("%d",&a);
		e[0][j]=a;
		i=0;
		do
		{
			i++;
			e[i][j]=e[i-1][e[i-1][j]];
		}
		while(e[i][j]);
	}
	
}

void rezolvare()
{
	int p,q,i;
	for(int j=1;j<=m;j++)
	{
		scanf("%d %d",&q,&p);
		i=0;
		while(p)
		{
			if(p&1)
				q=e[i][q];
			p=p/2;
			i++;
		}
		printf("%d\n",q);
		
	}
}

int main()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);
	citire();
	rezolvare();
	
	return 0;
}