Cod sursa(job #255374)

Utilizator AthanaricCirith Gorgor Athanaric Data 9 februarie 2009 15:03:02
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#define N 250250
int str[18][N],n,m;
void Config()
{
	for (int j=1; j<18; j++)
	{
		for (int i=1; i<=n; i++)
			if (str[j-1][i]!=0)
				str[j][i]=str[j-1][str[j-1][i]];
	}
}
void Calcul(int x,int y)
{
	int j;
	for (j=0; y; j++,y/=2)
	{
		if (y&1)
			x=str[j][x];
	}
	printf("%d\n",x);
}
void Solve()
{
	scanf("%d%d",&n,&m);
	int st,ord;
	for (int i=1; i<=n; i++)
		scanf("%d",&str[0][i]);
	Config();
	for (int i=1; i<=m; i++)
	{
		scanf("%d%d",&st,&ord);
		Calcul(st,ord);
	}	
}
int main()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);
	Solve();
}