Pagini recente » Cod sursa (job #722627) | Cod sursa (job #1396430) | Cod sursa (job #2867323) | Cod sursa (job #738887) | Cod sursa (job #131408)
Cod sursa(job #131408)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "stramosi.in"
#define out "stramosi.out"
#define dim 250001
int N, M;
int A[20][dim]; // A[i][j] - al 2^i-lea stramos a lui j
int main()
{
int X, Y;
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d%d", &N, &M);
for ( int i = 1; i <= N; i++ )
{
scanf("%d", &X);
A[0][i] = X;
}
for ( int i = 1; i <= N; i++ )
for ( int j = 1; j < 19; j++ )
A[i][j] = A[i-1][ A[i-1][j] ];
for ( ; M; M-- )
{
scanf("%d%d", &X, &Y);
int k = 18;
/* while ( Y )
{
while ( (1<<k) > Y ) --k;
Y -= (1<<k);
X = A[k][X];
}*/
printf("%d\n", X);
}
}