Cod sursa(job #146008)

Utilizator TabaraTabara Mihai Tabara Data 1 martie 2008 00:26:20
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define in "stramosi.in"
#define out "stramosi.out"
#define NMAX 250005

int N, M;
int tata[NMAX];
char buf[3000000];

int REC( int i, int nv );

int main()
{
    freopen( in, "r", stdin );
    freopen( out, "w", stdout );
    
    scanf( "%d %d\n", &N, &M );    
    int i, X, Y;
    
    {
        for ( i = 1; i < N; ++i ) scanf( "%d ", &tata[i] );
        scanf( "%d\n", &tata[N] );
    }
    
    fread( buf, sizeof(char), 3000000, stdin );
    char *p;
    p = strtok( buf, " " );
    X = atoi( p );
    p = strtok( 0, "\n" );
    Y = atoi( p );
    M--;
    printf( "%d\n", REC(X,Y) );    
    
    for ( ; M > 0; --M )
    {
        p = strtok( 0, " " );
        X = atoi( p );
        p = strtok( 0, "\n" );
        Y = atoi( p );        
        printf( "%d\n", REC( X, Y ) );
    }
    
    return 0;
}
              
int REC( int i, int nv )
{
    if ( nv == 0 ) return i;
    return REC(tata[i],nv-1);
}