Pagini recente » Cod sursa (job #563973) | Cod sursa (job #357864) | Cod sursa (job #2052453)
#include <fstream>
#define DIM 250002
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m, x, y, put, p[DIM], d[32][DIM];
int main(){
f>>n>>m;
for(int i = 1; i <= n; ++ i)
f>>d[0][i];
for(int k = 1; (1 << k) <= n; ++ k)
for(int i = 1; i <= n; ++ i)
d[k][i] = d[k - 1][d[k - 1][i]];
for(int i = 2; i <= n; ++ i)
p[i] = 1 + p[i / 2];
for(int i = 1; i<= m; ++ i){
f>>x>>y;
while(y){
put = p[y];
x = d[put][x];
y -= (1 << put);
}
g<<x<<'\n';;
}
return 0;
}