Pagini recente » Cod sursa (job #2426894) | Cod sursa (job #2139047) | Cod sursa (job #677692) | Cod sursa (job #1271473) | Cod sursa (job #2474238)
#include <fstream>
using namespace std;
ifstream fin( "stramosi.in" );
ofstream fout( "stramosi.out" );
int dp[250001][19];
int lg[250001];
int main() {
int n, m, i, j, a, b;
fin >> n >> m;
for( i = 1; i <= n; ++i )
fin >> dp[i][0];
for( i = 1; i <= n; ++i )
for( j = 1; j <= 18; ++j )
dp[i][j] = dp[dp[i][j - 1]][j - 1];
for( i = 2; i <= n; ++i )
lg[i] = lg[i >> 1] + 1;
for( i = 1; i <= m; ++i ) {
fin >> a >> b;
for( j = 18; j >= 0; --j )
if( b & (1 << j) )
a = dp[a][j];
fout << a << "\n";
}
return 0;
}