Pagini recente » Cod sursa (job #2466067) | Cod sursa (job #1523423) | Cod sursa (job #1432822) | Cod sursa (job #666209) | Cod sursa (job #2696193)
#include <stdio.h>
#define MAXN 250000
#define PUT2MX 17
int stramos[PUT2MX + 1][MAXN + 1];
int main() {
FILE *fin, *fout;
fin = fopen( "stramosi.in", "r" );
fout = fopen( "stramosi.out", "w" );
int n, m, bz2, x, i, j;
fscanf( fin, "%d", &n );
fscanf( fin, "%d", &m );
for ( i = 1; i <= n; i++ )
fscanf( fin, "%d", &stramos[0][i] );
i = 1;
while ( (1 << i) <= n ) {
for ( j = 1; j <= n; j++ )
stramos[i][j] = stramos[i - 1][stramos[i - 1][j]];
i++;
}
for ( i = 0; i < m; i++ ) {
j = 0;
fscanf( fin, "%d", &x );
fscanf( fin, "%d", &bz2 );
while ( 0 < bz2 ) {
if ( bz2 & 1 )
x = stramos[j][x];
bz2 /= 2;
j++;
}
fprintf( fout, "%d\n", x );
}
return 0;
}