Pagini recente » Cod sursa (job #909705) | Cod sursa (job #2332251) | Cod sursa (job #178523) | Cod sursa (job #733901) | Cod sursa (job #3230382)
#include <bits/stdc++.h>
#define N 250005
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q;
int d[19][N];
int main() {
fin >> n >> q;
for (int i = 1; i <= n; i++) {
fin >> d[0][i];
}
for (int i = 1; i <= 18; i++) {
for (int j = 1; j <= n; j++) {
d[i][j] = d[i-1][d[i-1][j]];
}
}
while (q--) {
int member, steps;
fin >> member >> steps;
int power = 0;
int result = member;
while (steps) {
if (steps % 2 == 1) {
result = d[power][result];
}
power++;
steps /= 2;
}
fout << result << "\n";
}
return 0;
}