Pagini recente » Cod sursa (job #666450) | Cod sursa (job #780113) | Cod sursa (job #554537) | Cod sursa (job #2716284) | Cod sursa (job #2503765)
#include <fstream>
#include <vector>
#include <cstring>
#include <climits>
#define power 17
#define N 250000 + 1
using namespace std;
ifstream f ( "stramosi.in" );
ofstream g ( "stramosi.out" );
int d[power + 1][N], e[power + 1];
int main()
{ int n, q, i, org, lvl;
f >> n >> q;
for ( i = 1; i <= n; i++ )
f >> d[0][i];
for ( i = 1; i <= power; i++){
for ( int j = 1; j <= n; j++ )
d[i][j] = d[i - 1][ d[i - 1][j] ];
}
for ( i = 1; i <= q; i++ ){
f >> org >> lvl;
for ( int j = 0; ( 1 << j ) <= lvl; j++ )
if ( ( ( lvl >> j ) & 1 ) == 1 )
org = d[j][org];
g << org << '\n';
}
return 0;
}