Pagini recente » Cod sursa (job #2595515) | Cod sursa (job #1926975) | Cod sursa (job #3261847) | Cod sursa (job #1124654) | Cod sursa (job #1146730)
#include <cstdio>
const int Q=250001;
int n,w;
int str[20][Q];
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&w);
for(int i=1; i<=n; i++)
{
scanf("%d",&str[0][i]);
}
for(int i=1; i<=18; i++)
{
for(int j=1; j<=n; j++)
str[i][j]=str[i-1][str[i-1][j]];
}
int p,k,pow;
for(int i=1; i<=w; i++)
{
scanf("%d%d",&k,&p);
pow=0;
while(p!=0)
{
if(p%2==1)
{
k=str[pow][k];
}
pow++;
p/=2;
}
printf("%d\n",k);
}
return 0;
}