Pagini recente » Cod sursa (job #635960) | Cod sursa (job #721951) | Cod sursa (job #2586982) | Cod sursa (job #1187520) | Cod sursa (job #2658482)
#include <fstream>
using namespace std;
ifstream f ("stramosi.in");
ofstream g ("stramosi.out");
int const N = 250001;
int v [N][18];
int main()
{
int n , m , i , j , p , cur , q , x;
f >> n >> m;
for(i = 1 ; i <= n ; ++ i)
f >> v [i][0];
for(i = 1 ; (1 << i) <= n ; ++ i)
for(j = (1 << i) + 1 ; j <= n ; ++ j)
v [j][i] = v [v [j][i - 1]][i - 1];
while (m --){
f >> p >> q;
cur = p , x = 0;
while ((1 << x) < q)
++ x;
for(i = x ; i >= 0 ; -- i)
if ((1 << i) & q)
cur = v [cur][i];
g << cur << '\n';
}
return 0;
}