Pagini recente » Cod sursa (job #724554) | Cod sursa (job #1797464) | Cod sursa (job #1091679) | Cod sursa (job #712991) | Cod sursa (job #1114366)
#include <cstdio>
using namespace std;
int stramos[250002][20],v[250002];
int main()
{
int n,i,j,x,y,m;
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
{
scanf("%d",&stramos[i][1]);
}
for(i=1;i<=n;i++)
for(j=2;j<=19;j++)
stramos[i][j]=stramos[stramos[i][j-1]][j-1];
for(i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
int rasp=x,nr=0;
while(y>0)
{
nr++;
if(y%2==1)
{
rasp=stramos[rasp][nr];
}
y=y/2;
}
printf("%d\n",rasp);
}
return 0;
}