Pagini recente » Cod sursa (job #2152454) | Cod sursa (job #621335) | Cod sursa (job #769017) | Cod sursa (job #535582) | Cod sursa (job #3262573)
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int tata[250001][31];
int main()
{
int n,m,i,nod,bit,a;
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>tata[i][0];
}
for(i=1;i<=30;i++){
for(nod=1;nod<=n;nod++){
tata[nod][i]=tata[tata[nod][i-1]][i-1];
}
}
for(i=1;i<=m;i++){
cin>>nod>>a;
for(bit=30;bit>=0;bit--){
if(a&(1<<bit)){
nod=tata[nod][bit];
}
}
cout<<nod<<"\n";
}
return 0;
}