Pagini recente » Cod sursa (job #2185636) | Cod sursa (job #2172663) | Cod sursa (job #38501) | Cod sursa (job #1109662) | Cod sursa (job #1498008)
#include <fstream>
using namespace std;
const int NMAX = 250005;
int n, m, x, y;
int ST[19][NMAX];
int main()
{
freopen("stramosi.in", "r", stdin);
scanf("%d%d", &n, &m);
for(int i=1; i<=n; ++i)
scanf("%d", &ST[0][i]);
int l = 0, p = 1;
while (p <= n) {
p *= 2;
++l;
}
--l;
for(int j=1; j<=l; ++j)
for(int i=1; i<=n; ++i)
ST[j][i] = ST[j-1][ST[j-1][i]];
freopen("stramosi.out", "w", stdout);
for(int i=1; i<=m; ++i) {
scanf("%d%d", &x, &y);
for(int j=20; j>-1; --j)
if(y & (1 << j))
x = ST[j][x];
printf("%d\n", x);
}
return 0;
}