Pagini recente » Cod sursa (job #2187793) | Cod sursa (job #873806) | Cod sursa (job #1616811) | Cod sursa (job #3183527) | Cod sursa (job #500724)
Cod sursa(job #500724)
# include <cstdio>
const char *FIN = "stramosi.in", *FOU = "stramosi.out" ;
const int MAX = 250000, lim = 31 ;
int V[lim][MAX] ;
int N, M ;
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d %d", &N, &M ) ;
for ( int i = 0; i < N; ++i ) {
scanf ( "%d", V[0] + i + 1 ) ;
}
for ( int i = 1; i < lim; ++i ) {
for ( int j = 1; j <= N; ++j ) {
V[i][j] = V[i - 1][ V[i - 1][j] ] ;
}
}
for ( int a, b ; M ; --M ) {
scanf ( "%d %d", &a, &b ) ;
for ( int i = 0; b ; ++i, b >>= 1 ) {
if ( b & 1 ) {
a = V[i][a] ;
}
}
printf ( "%d\n", a ) ;
}
}