Pagini recente » Cod sursa (job #925633) | Cod sursa (job #611995) | Cod sursa (job #2912045) | Cod sursa (job #2880882) | Cod sursa (job #2938983)
#include<fstream>
#include<vector>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int a[250002][18];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i][1];
for(int k=1;k<=17;k++)
for(int i=1;i<=n;i++){
a[i][k+1]=a[a[i][k]][k];
//cout<<a[i][k+1]<<" ";
}
for(int i=1;i<=m;i++){
int nod,stramos;
cin>>nod>>stramos;
while(stramos){
int cnt=1,p=1;
while(p*2<=stramos)
p*=2,cnt++;
stramos-=p;
nod=a[nod][cnt];
}
cout<<nod<<"\n";
}
}