Pagini recente » Cod sursa (job #2308014) | Cod sursa (job #933745) | Cod sursa (job #463498) | Cod sursa (job #2648829) | Cod sursa (job #906376)
Cod sursa(job #906376)
#include <cstdio>
#define nmax 250010
using namespace std;
int v[25][nmax],n,m,i,j,niv,a,b;
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]);
for(i=1,niv=2;niv<=n;niv<<=1,++i)
for(j=1;j<=n;j++)
v[i][j]=v[i-1][v[i-1][j]];
for(;m;--m)
{
scanf("%d%d", &a, &b);
while(a!=0&&b!=0)
{
i=0;niv=1;
while(niv<=b){niv<<=1;++i;}
niv>>=1;
--i;
b-=niv;
a=v[i][a];
}
printf("%d\n", a);
}
return 0;
}