Cod sursa(job #156069)

Utilizator mircea_infoSuciu Mircea-Gabriel mircea_info Data 12 martie 2008 12:32:28
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
int cat,n,x[18][260000],y[20];
int zz,p1,i,j,k,m;
int main()
{	freopen("stramosi.in","r",stdin);
    freopen("stramosi.out","w",stdout);
	scanf("%ld%ld",&n,&cat);
	y[0]=1;
	for(j=1;j<=17;j++) 
        y[j]=2*y[j-1];
	x[0][0]=0;
	for(j=1;j<=n;j++) 
        scanf("%d",&x[0][j]);
	for(i=1;i<=17;i++)
	for(j=1;j<=n;j++){ 
          m=x[i-1][j];
		  x[i][j]=x[i-1][m];
    }
	for(i=1;i<=cat;i++){ 
        scanf("%d%d",&p1,&zz);
		k=1;
		while(zz){
            if(zz%2==1)
                 p1=x[k-1][p1];
            k++;
            zz/=2;
        }
		printf("%d\n",p1);
    }
    fclose(stdout);
	return 0;
}