Pagini recente » Cod sursa (job #1931664) | Cod sursa (job #580645) | Cod sursa (job #496414) | Cod sursa (job #2069949) | Cod sursa (job #2433861)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "stramosi.in" );
ofstream fout ( "stramosi.out" );
int n, m, q;
int a[30][250010];
int nod, ord;
int main() {
fin >> n >> q;
for ( int i = 1; i <= n; i++ )
fin >> a[i][0];
for ( int cat = 1; ( 1 << cat ) <= n; cat++ )
for ( int i = 1; i <= n; i++ )
a[i][cat] = a[a[i][cat - 1]][cat - 1];
for ( int t = 1; t <= q; t++ ) {
fin >> nod >> ord;
int anc = nod;
for ( int i = 20; i >= 0; i-- )
if ( ( 1 << i ) &ord )
anc = a[anc][i];
fout << anc << '\n';
}
return 0;
}