Pagini recente » Cod sursa (job #2335922) | Cod sursa (job #1156016) | Cod sursa (job #1520081) | Cod sursa (job #2340715) | Cod sursa (job #2291122)
#include <fstream>
int d[250001][19];
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 <= 17; ++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 << 18u;
k = 18;
while (j != 0) {
if (j <= y) {
y -= j;
x = d[x][k];
}
--k;
j >>= 1;
}
out << x << '\n';
}
return 0;
}