Pagini recente » Borderou de evaluare (job #3253997) | Borderou de evaluare (job #2207648) | Cod sursa (job #738702) | Cod sursa (job #334161) | Cod sursa (job #2498048)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,v[20][250001],i,j,p[20],x,cnt;
int main(){
fin>>n>>m;
for(i=1;i<=n;i++){
fin>>v[0][i];
}
p[0]=1;
for(cnt=1,j=2;j<=n;cnt++,j*=2){
p[cnt]=j;
for(i=1;i<=n;i++)
v[cnt][i]=v[cnt-1][ v[cnt-1][i] ];
}
cnt--;
// for(i=0;i<=cnt;i++){
// for(j=1;j<=n;j++)
// cout<<v[i][j]<<" ";
// cout<<"\n";
// }
for(;m;m--){
fin>>i>>x;
while(x){
j=0;
while(2*p[j]<=x){
j++;
}
// cout<<p[j];
i=v[j][i];
x-=p[j];
}
fout<<i<<"\n";
}
return 0;
}