Pagini recente » Cod sursa (job #1189472) | Cod sursa (job #1571457) | Cod sursa (job #1074028) | Cod sursa (job #1639625) | Cod sursa (job #2682553)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("stramosi.in");
ofstream out ("stramosi.out");
int n, q;
int x, y;
int t[5][250005];
int main() {
in >> n >> q;
for(int i = 1; i <= n; i++)
in >> t[0][i];
for(int i = 1; i <= 4; i++) {
for(int j = 1; j <= n; j++) {
t[i][j] = j;
for(int k = 0; k < (1 << 4); k++)
t[i][j] = t[i - 1][t[i][j]];
}
}
for(int i = 1; i <= q; i++) {
in >> x >> y;
for(int p = 4; p >= 0; p--) {
for(int j = (y >> (4 * p)); j; j--)
x = t[p][x];
y &= ((1 << (4 * p)) - 1);
}
out << x << "\n";
}
return 0;
}