Pagini recente » Cod sursa (job #243705) | Cod sursa (job #2390150) | Cod sursa (job #1953353) | Cod sursa (job #2537746) | Cod sursa (job #15939)
Cod sursa(job #15939)
#include<stdio.h>
long int M,N,**x,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);
*x=new long int [18];
for(i=0;i<=17;i++)
x[i]=new long int [N+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;
}