Pagini recente » Cod sursa (job #300782) | Cod sursa (job #3233795) | Cod sursa (job #742622) | Cod sursa (job #2741802) | Cod sursa (job #3273098)
#include <fstream>
#define FAST ios_base::sync_with_stdio(false);
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
const int N=25e4;
int n,q,i,j;
int jump[20][N+2],log2[N+2];
int main()
{
FAST
cin>>n>>q;
for(i=1; i<=n; i++)
cin>>jump[0][i];
for(i=1; (1<<i)<=n; i++)
for(j=1; j<=n; j++)
jump[i][j]=jump[i-1][jump[i-1][j]];
for(i=2; i<=N; i++)
log2[i]=log2[i/2]+1;
while(q--)
{
int u,k;
cin>>u>>k;
while(k)
{
u=jump[log2[k]][u];
k-=(1<<log2[k]);
}
cout<<u<<'\n';
}
return 0;
}