Pagini recente » Cod sursa (job #695062) | Cod sursa (job #3248817) | Cod sursa (job #100909) | Cod sursa (job #2456047) | Cod sursa (job #2940335)
#include <fstream>
using namespace std;
int n, q, nod, dist, D[250010][20];
int main (){
ifstream fin ("stramosi.in");
ofstream fout("stramosi.out");
fin>>n>>q;
for (int i=1;i<=n;i++){
fin>>D[i][0];
}
for (int k=1;(1<<k)<=n;k++){
for (int i=1;i<=n;i++){
D[i][k]=D[D[i][k-1]][k-1];
}
}
for (int i=1;i<=q;i++){
fin>>nod>>dist;
for (int j=18;j>=0;j--){
if (dist>=(1<<j)){
dist-=(1<<j);
nod=D[nod][j];
}
}
fout<<nod<<"\n";
}
return 0;
}