Cod sursa(job #167361)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 29 martie 2008 15:22:12
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
#define N 300000
int n,m;
int mat[N][500],sd[N];
void make()
{
	for(int i=1;i<=n;++i)
		for(int j=2;j<400;++j)
		{
			mat[j][i]=sd[ mat[j-1][i] ];
			if(!mat[j][i])
				break;
		}
		
}	
void scan()
{
	int q,p;
	freopen("stramosi.in", "r",stdin);
	freopen("stramosi.out", "w",stdout);
	scanf("%d%d", &n,&m);
	for(int k=1;k<=n;++k)
	{
		scanf("%d", &sd[k]);
		mat[1][k]=sd[k];
	}	
		make();
	for(int k=1;k<=m;++k)
	{
		scanf("%d%d", &p,&q);
		printf("%d\n", mat[q][p]);
	}
}
int main()
{
	scan();
	return 0;
}