Pagini recente » Cod sursa (job #1769956) | Cod sursa (job #753437) | Cod sursa (job #1311250) | Cod sursa (job #2682576) | Cod sursa (job #2941869)
#include <iostream>
#include <fstream>
#define NMAX 250002
#define LMAX 20
using namespace std;
int n,m,p,q,up[NMAX][LMAX];
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++){
fin >> up[i][0];
for(int j = 1; j < LMAX; j++){
up[i][j] = up[up[i][j-1]][j-1];
}
}
while(m--){
fin >> q >> p;
for(int i = LMAX-1; i >= 0; i--){
if(p&(1<<i)){
q = up[q][i];
}
}
fout << q << "\n";
}
return 0;
}