Pagini recente » Cod sursa (job #2177149) | Cod sursa (job #1964279) | Cod sursa (job #255136) | Cod sursa (job #2625301) | Cod sursa (job #330522)
Cod sursa(job #330522)
#include<cstdio>
const int N = (1<<16);
const int L = 16;
int a[L][N],n,m;
void matrice()
{
int i,j;
for(j=1;j<=n;++j)
scanf("%d",&a[0][j]);
for(i=1;(1<<i)<=n;++i)
for(j=1;j<=n;++j)
a[i][j]=a[i-1][a[i-1][j]];
}
int stra(int p,int q)
{
int i=0;
if(p>n)
return 0;
while(p)
{
if(p&1)
q=a[i][q];
++i;
p>>=1;
}
return q;
}
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int p,q;
scanf("%d%d",&n,&m);
matrice();
while(m--)
{
scanf("%d%d",&q,&p);
printf("%d\n",stra(p,q));
}
return 0;
}