Pagini recente » Cod sursa (job #1491948) | Cod sursa (job #2310618) | Cod sursa (job #412166) | Cod sursa (job #1785640) | Cod sursa (job #2291133)
#include <fstream>
int d[250001][18];
int main() {
std::ifstream in("stramosi.in");
std::ofstream out("stramosi.out");
int i, j, k, x, y, n, m;
in >> n >> m;
for (i = 1; i <= n; ++i) in >> d[i][0];
for (j = 0; j <= 16; ++j) for (i = 1; i <= n; ++i) d[i][j + 1] = d[d[i][j]][j];
for (i = 0; i < m; ++i) {
in >> x >> y;
j = 1u << 17u;
k = 17;
while (j != 0) {
if (j <= y) {
y -= j;
x = d[x][k];
}
--k;
j >>= 1;
}
out << x << '\n';
}
return 0;
}