Pagini recente » Cod sursa (job #2199829) | Cod sursa (job #2680932) | Cod sursa (job #581035) | Cod sursa (job #2624090) | Cod sursa (job #3164842)
#include <iostream>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
const int NMAX = 1e6 + 5;
int sm [ NMAX ];
int mat [ 18 ] [ NMAX ];
int main ( int argc, char *argv[] )
{
( void )! freopen ( "stramosi.in" , "r" , stdin );
( void )! freopen ( "stramosi.out" , "w" , stdout );
std::ios_base::sync_with_stdio ( false );
std::cin.tie ( NULL );
int n, m; std::cin >> n >> m;
for ( int i = 1; i <= n; ++ i ) std::cin >> sm [ i ], mat [ 0 ] [ i ] = sm [ i ];
for ( int i = 1 ; i < 18; ++ i )
{
for ( int j = 1; j <= n; ++ j )
{
mat [ i ] [ j ] = mat [ i - 1 ] [ mat [ i - 1 ] [ j ] ];
}
}
while ( m )
{
int p, q; std::cin >> q >> p;
for ( int i = 0; i < 18; ++ i )
{
if ( p & ( 1 << i ) )
{
q = mat [ i ] [ q ];
}
}
std::cout << q << '\n';
-- m;
}
return 0;
}