Pagini recente » Cod sursa (job #1970704) | Cod sursa (job #2609143) | Cod sursa (job #2305304) | Cod sursa (job #806012) | Cod sursa (job #1146732)
#include<cstdio>
#include<cmath>
using namespace std;
int n,m,i,j,d[20][250010],lim,x,nr,cnt;
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&d[0][i]);
}
lim=log2(n)+1;
for(i=1;i<=lim;i++)
for(j=1;j<=n;j++)
{
d[i][j]=d[i-1][d[i-1][j]];
}
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&nr);
cnt=0;
while(nr!=0)
{
if(nr%2!=0)
x=d[cnt][x];
cnt++;
nr/=2;
}
printf("%d\n",x);
}
return 0;
}