Cod sursa(job #217485)

Utilizator GagosGagos Radu Vasile Gagos Data 28 octombrie 2008 19:05:14
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<stdio.h>   
long m,n,s[18][260000],p,q,k;
int main()   
{
	long i,j;
	freopen("stramosi.in","r",stdin);   
    freopen("stramosi.out","w",stdout);   
    scanf("%ld %ld",&n,&m);
	for(j=1;j<=n;++j)
		scanf("%ld",&s[0][j]);
	for(i=1;i<=17;++i)
		for(j=1;j<=n;++j)
			s[i][j]=s[i-1][s[i-1][j]];
	for(;m;--m){
		scanf("%ld %ld",&q,&p);
		k=1;
		while(p){
			if(p&1)
				q=s[k-1][q];
			k++;
			p>>=1;
		}
		printf("%ld\n",q);
	}
	printf("\n");
	fcloseall();
	return 0;
}