Cod sursa(job #131408)

Utilizator cos_minBondane Cosmin cos_min Data 3 februarie 2008 19:02:57
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#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);
    }
}