Pagini recente » Cod sursa (job #1404524) | Cod sursa (job #2973774) | Cod sursa (job #359382) | Cod sursa (job #1520920) | Cod sursa (job #1760410)
#include <fstream>
using namespace std;
#define Nmax 250002
#define LogN 18
ifstream fin( "stramosi.in" );
ofstream fout( "stramosi.out" );
int D[LogN][Nmax];
int main(){
int N, M;
fin >> N >> M;
for( int i = 1; i <= N; ++i )
fin >> D[0][i];
for( int i = 1; ( 1<<i ) <= N; ++i )
for( int j = 1; j <= N; ++j )
D[i][j] = D[i-1][D[i-1][j]];
int Q, P;
while( M-- ){
fin >> Q >> P;
while(P){
int poz = 31 - __builtin_clz(P);
Q = D[poz][Q];
P ^= (1 << poz);
}
fout << Q << "\n";
}
return 0;
}