Cod sursa(job #295337)

Utilizator BaduBadu Badu Badu Data 3 aprilie 2009 10:53:47
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>

FILE *f,*g;
int n,m;
int s[20][250100];

int main(){

	f = fopen("stramosi.in" ,"r");
	g = fopen("stramosi.out","w");

	fscanf(f,"%d%d",&n,&m);int i,j,a,b;
	for(i=1;i<=n;i++) fscanf(f,"%d",s[0]+i);

	for(i=1; ( 1 << i ) <= n ; i++ )

		for(j = 1 ; j<= n; j++)

			s[i][j] = s[i-1][s[i-1][j]];

	for( ; m-- ; ){i=0;

		fscanf(f,"%d%d",&a,&b);

		while( b!=0 ){

		if(b%2) { a = s[i][a]; }
	        i++; b >>=1; 

		}

		fprintf(g,"%d\n",a);
	}
	return 0  ;
}