Pagini recente » Cod sursa (job #380345) | Cod sursa (job #535340) | Cod sursa (job #2367950) | Cod sursa (job #2759662) | Cod sursa (job #1231134)
#include <cstdio>
using namespace std;
int N, M, i, j, p, P, Q, x, pw, T[19][250001];
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d", &N, &M);
for (i = 1; i <= N; ++i) scanf("%d", &T[0][i]);
for (j = 1; j <= 18; ++j)
for (i = 1; i <= N; ++i) T[j][i] = T[j - 1][T[j - 1][i]];
while (M--) {
scanf("%d %d", &Q, &P);
for (i = 18; i >= 0; --i)
if (P & (1 << i))
Q = T[i][Q];
printf("%d\n", Q);
}
return 0;
}