Pagini recente » Cod sursa (job #546829) | Monitorul de evaluare | Cod sursa (job #2075419) | Cod sursa (job #3040529) | Cod sursa (job #2076964)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,m,a[20][250005],x,p,r,h,t;
int main()
{
f>>n>>m;
for(int j=1;j<=n;++j)
{
f>>a[0][j];
}
for(int i=1;(1<<i)<=n;++i)
{
r=(1<<(i-1)); h=(1<<i);
for(int j=1;j<=n-h+1;++j)
{
t=a[i-1][j];
a[i][j]=a[i-1][t];
}
}
for(int i=1;i<=m;++i)
{
f>>x>>p; r=0;
while(p)
{
if(p%2) x=a[r][x];
++r; p/=2;
}
g<<x<<'\n';
}
return 0;
}