Pagini recente » Cod sursa (job #1582955) | Cod sursa (job #2947463) | Cod sursa (job #1579568) | Cod sursa (job #2965851) | Cod sursa (job #2766357)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout("stramosi.out");
const int dim=250009;
int n,m;
int rmq[40][dim];
void generare(){
int ct=1;
for(int ex=1;ex*2<=n;ex++){
for(int i=1;i<=n;i++)
rmq[ct][i]=rmq[ct-1][rmq[ct-1][i]];
ct++;
}
}
int Query(int q,int p){
int stramos=q,ct=0;
while(p){
if(p%2==1){
stramos=rmq[ct][stramos];
}
p/=2;
ct++;
}
return stramos;
}
signed main(){
fin>>n>>m;
for(int i=1;i<=n;i++){
int x;
fin>>x;
rmq[0][i]=x;
}
generare();
for(int i=1;i<=m;i++){
int p,q;
fin>>q>>p;
fout<<Query(q,p)<<'\n';
}
}