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