Pagini recente » Cod sursa (job #1793402) | Cod sursa (job #1368650) | Cod sursa (job #3212580) | Cod sursa (job #1959734) | Cod sursa (job #639681)
Cod sursa(job #639681)
#include<cstdio>
int n , m , p , q , a[18][250001];
int stramos(int x , int lung)
{
int i = 0;
while ( lung != 0 )
{
if ( lung % 2 != 0 ) x = a[i][x];
lung /= 2;
++i;
}
return x;
}
int main()
{
freopen ( "stramosi.in" , "r" , stdin );
freopen ( "stramosi.out" , "w" , stdout );
scanf("%d%d" , &n , &m );
for (int j=1 ; j<=n ; ++j )
scanf ("%d" , &a[0][j]);
for (int i=1 ; i<=n ; ++i )
{
for ( int j = 1 ; j <= n ; ++j )
a[i][j] = a[i-1][a[i-1][j]];
}
for (int i = 1 ; i <= m ; ++ i )
{
scanf ( "%d %d" , &q , &p );
printf ("%d\n" , stramos(q,p));
}
return 0;
}