Pagini recente » Cod sursa (job #1112346) | Cod sursa (job #608867) | Cod sursa (job #2868329) | Cod sursa (job #371409) | Cod sursa (job #1269298)
#include <iostream>
#include <cstdio>
using namespace std;
int v[19][250011];
int main()
{
freopen("stramosi.in" , "r" , stdin);
freopen("stramosi.out", "w" , stdout);
int n , k , nn , i , j , a , b , m;
scanf("%d %d\n", &n ,&k);
nn = 18;
while( !(n&(1<<nn)) ) --nn;
for(i = 1;i <= n; ++i)
scanf("%d ", &v[0][i]);
for(i = 1;i <= nn; ++i )
for(j=1; j<=n;++j)
v[i][j] = v[i-1][ v[i-1][j] ];
while( k-- ){
scanf("%d %d\n",&a,&b);
for(i=nn;i>=0;--i)
if( b&(1<<i) )
a = v[i][a];
printf("%d\n",a);
}
return 0;
}