Pagini recente » Cod sursa (job #2825557) | Cod sursa (job #3142242) | Cod sursa (job #1400483) | Cod sursa (job #959201) | Cod sursa (job #219436)
Cod sursa(job #219436)
#include<stdio.h>
#include<math.h>
#define NMAX 250001
#define LGMAX 20
int n,m,i,j,p,q,anc,k,xl;
int a[LGMAX][NMAX];
int main(void)
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&a[0][i]);
xl=ceil(log(n)/log(2));
for(i=1;i<=xl;i++)
for(j=1;j<=n;j++)
a[i][j]=a[i-1][a[i-1][j]];
for(j=1;j<=m;j++)
{
scanf("%d%d",&q,&p);
anc=q;
k=0;
while(p)
{
if(p&1)
anc=a[k][anc];
k++;
p>>=1;
}
printf("%d\n",anc);
}
return 0;
}