Pagini recente » Cod sursa (job #2771673) | Cod sursa (job #2350722) | Cod sursa (job #2908274) | Cod sursa (job #2881216) | Cod sursa (job #872409)
Cod sursa(job #872409)
#include<cstdio>
#define NMAX 250001
FILE *f=fopen("stramosi.in","r");
FILE *g=fopen("stramosi.out","w");
using namespace std;
int v[20][NMAX];
int n;
int query( int q, int w)
{
int i;
while(w)
{
for( i=1 ; 1<<i <= w ; ++i ) ;
i--;
w-=1<<i;
q=v[i][q];
}
return q;
}
int main( void )
{
int m;
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;
}