Pagini recente » Cod sursa (job #472673) | Cod sursa (job #1978644) | Cod sursa (job #60038) | Cod sursa (job #76378) | Cod sursa (job #226182)
Cod sursa(job #226182)
#include <stdio.h>
int S[18][250005];
int main()
{
FILE *in = fopen("stramosi.in","r");
FILE *out = fopen("stramosi.out","w");
int n,m,i,j,x,y,k;
fscanf(in,"%d%d",&n,&m);
for (i=1;i<=n;i++) fscanf(in,"%d",&S[0][i]);
for (i=1;i<=17;i++)
for (j=1;j<=n;j++)
S[i][j] = S[i-1][S[i-1][j]];
for (;m;m--)
{
fscanf(in,"%d%d",&x,&y);
k=1;
while (y)
{
if (y&1) x = S[k-1][x];
k++;
y>>=1;
}
fprintf(out,"%d\n",x);
}
}