Pagini recente » Cod sursa (job #881544) | Cod sursa (job #315433) | Cod sursa (job #2886918) | Cod sursa (job #1208249) | Cod sursa (job #2754969)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int a[18][250001];
int main() {
int n, Q, q, p, j;
fin>>n>>Q;
for(int i = 1; i <= n; ++i)
fin >> a[0][i];
for(int i = 1; (1 << i) <= n; ++i) {
for (j = 1; j <= n; ++j) {
a[i][j] = a[i - 1][a[i - 1][j]];
}
}
while(Q--){
fin >> q >> p;
j = 0;
while(p){
if (p % 2 == 1)
q = a[j][q];
j++;
p /= 2;
}
fout<<q<<'\n';
}
return 0;
}