Pagini recente » Cod sursa (job #961855) | Cod sursa (job #1497763) | Cod sursa (job #160992) | Monitorul de evaluare | Cod sursa (job #293205)
Cod sursa(job #293205)
#include <stdio.h>
long a[18][250000];
long n,m,i,p,q,nr,j;
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%ld %ld",&n,&m);
for (i=1; i<=n; ++i)
scanf("%ld",&a[0][i]);
nr=1;
i=n;
while (i!=0)
{
for (j=1; i<=n; ++j)
a[nr][j]=a[nr-1][a[nr-1][j]];
i/=2;
++nr;
}
for (i=1; i<=m; ++i)
{
nr=0;
scanf("%ld %ld",&p,&q);
while (q && p)
{
if (q%2==1) p=a[nr][p];
++nr;
q/=2;
}
printf("%ld\n",p);
}
fclose(stdin); fclose(stdout);
return 0;
}