Cod sursa(job #15934)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 11 februarie 2007 21:21:12
Problema Stramosi Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
long int M,N,x[17][300000],y[20],P,Q,i,j,k,E,m;
int main()
{	FILE *f=fopen("stramosi.in","r");
	FILE *g=fopen("stramosi.out","w");
	fscanf(f,"%ld%ld",&N,&M);
	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++) fscanf(f,"%ld",&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<=M;i++){ fscanf(f,"%ld%ld",&Q,&P);
			   k=1;
			   while(P){if(P%2==1)Q=x[k-1][Q];k++;P/=2;}
			   fprintf(g,"%ld ",Q);
			  }
        fprintf(g,"\n");
	fcloseall();
	return 0;
}