Pagini recente » Cod sursa (job #3338241) | Cod sursa (job #1385188) | Cod sursa (job #2538439) | Cod sursa (job #3308742) | Cod sursa (job #3333083)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define cin fin
#define cout fout
int parent[250001][20];
int n,q;
int jump(int a, int d) {
for(int i = 0; i < 10; i++) {
if (d&(1<<i)) {
a=parent[a][i];
}
}
return a;
}
int main() {
cin >> n >> q;
for(int i = 1; i<= n; i++) {
cin >> parent[i][0];
}
for(int d=1; d < 10; d++) {
for(int i = 1; i <= n; i++) {
parent[i][d]=parent[parent[i][d-1]][d-1];
}
}
while(q--) {
int x, y;
cin >> x >> y;
cout << jump(x, y) << "\n";
}
return 0;
}