Pagini recente » Cod sursa (job #2935752) | Cod sursa (job #2383366) | Cod sursa (job #1144325) | Cod sursa (job #682541) | Cod sursa (job #1778973)
#include <cstdio>
int s[20][250001], n;
using namespace std;
void restramosare()
{
int i, j;
for( i=1;i<=18;i++ )
for( j=1;j<=n;j++ )
s[i][j]=s[i-1][s[i-1][j]];
}
inline int stramos( int str, int k )
{
int i=0;
while( k!=0 )
{
if( k%2==1 )
str=s[i][str];
k/=2;
i++;
}
return str;
}
int main()
{
freopen( "stramosi.in", "r", stdin );
freopen( "stramosi.out", "w", stdout );
int m, q, p, i;
scanf( "%d%d", &n, &m );
for( i=1;i<=n;i++ )
scanf( "%d", &s[0][i] );
restramosare();
for( i=1;i<=m;i++ )
{
scanf( "%d%d", &q, &p );
printf( "%d\n", stramos(q,p) );
}
return 0;
}