Pagini recente » Cod sursa (job #164523) | Cod sursa (job #56246) | Cod sursa (job #3179225) | Cod sursa (job #3137785) | Cod sursa (job #872390)
Cod sursa(job #872390)
#include<cstdio>
#define NMAX 250005
FILE *f=fopen("stramosi.in","r");
FILE *g=fopen("stramosi.out","w");
using namespace std;
int v[20][NMAX];
int n,m;
inline int query( int q, int w)
{
int i;
int count=0;
while(w)
{
for( i=1 ; 1<<i <= w ; ++i ) ;
i--;
count+=i;
w-=1<<i;
}
return v[count][q];
}
int main( void )
{
fscanf(f,"%d%d",&n,&m);
int copy_m=m;
int i,j;
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[0][i]);
for(i=1;i<=20;i++)
for(j=1;j<=n;j++)
v[i][j]=v[i-1][v[i-1][j]];
int q,w;
m=copy_m;
while(m)
{
fscanf(f,"%d%d",&q,&w);
fprintf(g,"%d\n",query(q,w));
m--;
}
return 0;
}