Cod sursa(job #282413)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 17 martie 2009 17:06:05
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
# include <stdio.h>   
# define n 250001
long N,M,T[20][n],i,j,p,q;
int main()   
{   
    freopen("stramosi.in","r",stdin);   
    freopen("stramosi.out","w",stdout);   
    scanf("%ld %ld",&N,&M);
	for (i=1;i<=N;++i)
		scanf("%ld",&T[0][i]);
	for (i=1;i<=20;++i)
	  for (j=1;j<=N;++j)
	    if (T[i-1][j]) T[i][j]=T[i-1][T[i-1][j]];
	for (i=1;i<=M;++i){
		scanf("%ld %ld",&q,&p);   
        for(j=0;p>0;j++){   
            if (p&1)q=T[j][q];
			p/=2;
		 }	
		printf("%ld\n",q);   		
	}
    return 0;   
}