Pagini recente » Cod sursa (job #934719) | Cod sursa (job #446569) | Cod sursa (job #700766) | Diferente pentru implica-te/arhiva-educationala intre reviziile 85 si 86 | Cod sursa (job #1042691)
#include<stdio.h>
int v[23][250013],m,n,i,j,k,p,q;
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)scanf("%d",&v[0][i]);
k=1;
while(1<<k < n)
{
for(i=1;i<=n;++i)
v[k][i]=v[k-1][v[k-1][i]];
++k;
}
/* for(i=0;i<=5;++i)
{
for(j=1;j<=n;++j)printf("%d ",v[i][j]);
printf("\n");
}*/
for(k=0;k<m;++k)
{
scanf("%d%d",&q,&p);
for(j=0;(1<<j)<=p;++j)
if( p & (1<<j) )
q=v[j][q];
printf("%d\n",q);
}
return 0;
}