Pagini recente » Borderou de evaluare (job #2012383) | Borderou de evaluare (job #829414) | Borderou de evaluare (job #1019719) | Borderou de evaluare (job #1501424) | Cod sursa (job #872410)
Cod sursa(job #872410)
#include<cstdio>
#define NMAX 250001
FILE *f=fopen("stramosi.in","r");
FILE *g=fopen("stramosi.out","w");
using namespace std;
int v[18][NMAX];
int n;
inline 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 i,j;
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[0][i]);
for(i=1;i<=18;i++)
for(j=1;j<=n;j++)
v[i][j]=v[i-1][v[i-1][j]];
int q,w;
while(m)
{
fscanf(f,"%d%d",&q,&w);
fprintf(g,"%d\n",query(q,w));
m--;
}
return 0;
}