Pagini recente » Cod sursa (job #329152) | Cod sursa (job #2067400) | Cod sursa (job #3205826) | Cod sursa (job #1163360) | Cod sursa (job #514836)
Cod sursa(job #514836)
#include<stdio.h>
FILE*f=fopen("stramosi.in","r");
FILE*g=fopen("stramosi.out","w");
int S[20][251000],i,j,p,lg,N,Q,q;
int main () {
fscanf(f,"%d %d",&N,&Q);
for ( i = 1 ; i <= N ; ++i )
fscanf(f,"%d",&S[0][i]);
for ( p = 1 ; p <= N ; p *= 2 , ++lg ) {};
for ( i = 1 ; i <= lg ; ++i ){
for ( j = 1 ; j <= N ; ++j )
S[i][j] = S[i-1][S[i-1][j]];
}
while ( Q-- ){
fscanf(f,"%d %d",&q,&p);
i = 0;
while ( p ){
if ( p % 2 )
q = S[i][q];
p /= 2;
++i;
}
fprintf(g,"%d\n",q);
}
fclose(f);
fclose(g);
return 0;
}