Pagini recente » Cod sursa (job #340506) | Cod sursa (job #960204) | Cod sursa (job #1134311) | Cod sursa (job #2587358) | Cod sursa (job #3299215)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int a[20][250001];
int main() {
int N, M;
fin >> N >> M;
for (int i = 1; i <= N; i++) {
fin >> a[0][i];
}
for (int j = 1; j < 20; j++) {
for (int i = 1; i <= N; ++i) {
a[j][i] = a[j - 1][i] ? a[j - 1][a[j - 1][i]] : 0;
}
}
for (int i = 0; i < M; i++) {
int Q, P;
fin >> Q >> P;
for (int j = 0; j < 20 && Q; j++) {
if (P & (1 << j)) {
Q = a[j][Q];
}
}
fout << Q << '\n';
}
return 0;
}