Pagini recente » Cod sursa (job #643102) | Cod sursa (job #1853862) | Cod sursa (job #2427710) | Cod sursa (job #1328000) | Cod sursa (job #639683)
Cod sursa(job #639683)
#include<cstdio>
int x[250001][18];
int stramos ( int q , int lung )
{
int i = 0;
while ( lung )
{
if ( lung % 2 != 0 )
q = x[i][q];
lung /= 2 ;
++i;
}
return q ;
}
int main ( )
{
freopen ( "stramosi.in", "r" , stdin ) ;
freopen ( "stramosi.out", "w", stdout ) ;
int n , m , i , j ;
int p , q;
scanf ( "%d%d", & n , & m ) ;
for ( i = 1 ; i <= n ; ++ i )
scanf ( "%d", & x[0][i] ) ;
for ( i = 1 ; i <= n ; ++ i )
for ( j = 1 ; j <= n ; ++ j )
x[i][j] = x[i-1][x[i-1][j]] ;
for ( i = 1 ; i <= m ; ++ i )
{
scanf ( "%d%d", & p , & q ) ;
printf ( "%d\n" , stramos ( p , q ) ) ;
}
return 0 ;
}